leet485 最大連續1的個數

2021-10-11 00:20:30 字數 758 閱讀 5137

給定乙個二進位制陣列, 計算其中最大連續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...