給定乙個二進位制陣列, 計算其中最大連續1的個數。示例 1:
輸入: [1,1,0,1,1,1]
輸出: 3
解釋: 開頭的兩位和最後的三位都是連續1,所以最大連續1的個數是 3.
注意:輸入的陣列只包含 0 和1。
輸入陣列的長度是正整數,且不超過 10,000。
方法一:一次遍歷,本題目非常簡單進行一次遍歷即可,注意點,最後乙個元素遍歷後別忘記maxcount++題目的約束讓這個問題變得簡單,使得我們可以在一次遍歷解決它。
演算法:用乙個計數器 count 記錄 1 的數量,另乙個計數器 maxcount 記錄當前最大的 1 的數量。
當我們遇到 1 時,count 加一。
當我們遇到 0 時:
將 count 與 maxcount 比較,maxcoiunt 記錄較大值。
將 count 設為 0。
返回 maxcount。
複雜度分析:
時間o(n)
int findmaxconsecutiveones(int* nums, int numssize)else
} //加一次判斷,防止迴圈結束,若最後乙個數字為1,沒有進行比較
return (maxsize>counter)?maxsize:counter;;
}
485 最大連續1的個數
題目給定乙個二進位制陣列,計算其中最大連續1的個數。只包含0和1 常規思路一般想到的是都是遍歷陣列,用乙個變數記錄當前連續1的個數,另乙個變數記錄最大的長度,每當出現0就比較這兩個變數直到最後完成。但是這個題目我們可以用滑窗法來做 滑窗法滑動視窗法,可以用來解決一些查詢滿足一定條件的連續區間的性質等...
485 最大連續1的個數
給定乙個二進位制陣列,計算其中最大連續1的個數。示例 1 輸入 1 1,0 1,1 1 輸出 3解釋 開頭的兩位和最後的三位都是連續1,所以最大連續1的個數是 3 注意 輸入的陣列只包含 0 和1。輸入陣列的長度是正整數,且不超過 10,000。class solution def findmaxc...
485 最大連續1的個數
給定乙個二進位制陣列,計算其中最大連續1的個數。注意 輸入的陣列只包含 0 和1。輸入陣列的長度是正整數,且不超過 10,000。判斷陣列是否滿足注意條件,初始化變數x y,迴圈陣列,若為1則x 1,若為0則判斷y是否小於x,若小於則y x並且清空x,直到整個陣列迴圈完畢 class solutio...