LeetCode 2155. 分组得分最高的所有下标(前缀和)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 2155. 分组得分最高的所有下标(前缀和)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給你一個下標從 0 開始的二進制數組 nums ,數組長度為 n 。
nums 可以按下標 i( 0 <= i <= n )拆分成兩個數組(可能為空):numsleft 和 numsright 。
- numsleft 包含 nums 中從下標 0 到 i - 1 的所有元素(包括 0 和 i - 1 ),而 numsright 包含 nums 中從下標 i 到 n - 1 的所有元素(包括 i 和 n - 1 )。
- 如果 i == 0 ,numsleft 為 空 ,而 numsright 將包含 nums 中的所有元素。
- 如果 i == n ,numsleft 將包含 nums 中的所有元素,而 numsright 為 空 。
下標 i 的 分組得分 為 numsleft 中 0 的個數和 numsright 中 1 的個數之 和 。
返回 分組得分 最高 的 所有不同下標 。你可以按 任意順序 返回答案。
示例 1: 輸入:nums = [0,0,1,0] 輸出:[2,4] 解釋:按下標分組 - 0 :numsleft 為 [] 。numsright 為 [0,0,1,0] 。得分為 0 + 1 = 1 。 - 1 :numsleft 為 [0] 。numsright 為 [0,1,0] 。得分為 1 + 1 = 2 。 - 2 :numsleft 為 [0,0] 。numsright 為 [1,0] 。得分為 2 + 1 = 3 。 - 3 :numsleft 為 [0,0,1] 。numsright 為 [0] 。得分為 2 + 0 = 2 。 - 4 :numsleft 為 [0,0,1,0] 。numsright 為 [] 。得分為 3 + 0 = 3 。 下標 2 和 4 都可以得到最高的分組得分 3 。 注意,答案 [4,2] 也被視為正確答案。示例 2: 輸入:nums = [0,0,0] 輸出:[3] 解釋:按下標分組 - 0 :numsleft 為 [] 。numsright 為 [0,0,0] 。得分為 0 + 0 = 0 。 - 1 :numsleft 為 [0] 。numsright 為 [0,0] 。得分為 1 + 0 = 1 。 - 2 :numsleft 為 [0,0] 。numsright 為 [0] 。得分為 2 + 0 = 2 。 - 3 :numsleft 為 [0,0,0] 。numsright 為 [] 。得分為 3 + 0 = 3 。 只有下標 3 可以得到最高的分組得分 3 。示例 3: 輸入:nums = [1,1] 輸出:[0] 解釋:按下標分組 - 0 :numsleft 為 [] 。numsright 為 [1,1] 。得分為 0 + 2 = 2 。 - 1 :numsleft 為 [1] 。numsright 為 [1] 。得分為 0 + 1 = 1 。 - 2 :numsleft 為 [1,1] 。numsright 為 [] 。得分為 0 + 0 = 0 。 只有下標 0 可以得到最高的分組得分 2 。提示: n == nums.length 1 <= n <= 10^5 nums[i] 為 0 或 1來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/all-divisions-with-the-highest-score-of-a-binary-array
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 正向前綴和求左側 0 的個數
- 反向前綴和求右側 1 的個數
- 遍歷求最大的和、及其 下標
1376 ms 30 MB Python3
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 2155. 分组得分最高的所有下标(前缀和)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python web开发 jQuery基
- 下一篇: LeetCode 1891. 割绳子(二