Max Consecutive Ones
Given a binary array, find the maximum number of consecutive 1s in this array.
For Example:
|
|
Note:
- The input array will only contain 0 and 1.
- The length of input array is a positive integer and will not exceed 10,000
提示 | 解題應用 |
---|---|
Array | 規律觀查 |
Default:
|
|
解答思路:
要從一陣列中找出最多連續出現1的次數,只要一邊遍歷一邊計算數量,當碰上0時就判斷是否大於先前出現的最大次數,如果是就取代原本的值然後將計數歸0重新開始計算,直到遍歷結束後做最後一次判斷計數器的值是否比較大,再來決定回傳的內容。
程式碼解說:
一開始就以一迴圈遍歷陣列,如果元素值為1就將計數+1,當發現該元素的值為0時,此時就要停止計算出現1的數量,然後判斷是否大於先前出現的最大次數,是的話就取代原本的值,將計數歸0後再繼續遍歷其它元素,最後當遍歷結束時要再做最後一次判斷計數器的值是否比較大,因為陣列的最後一個值有可能不為0,此時計數器中的值尚未與目前的最大值做比較,因此若計數器的值若比較大則將最大值做取代回傳,否則就直接回傳原本的值
|
|
完整程式碼:
|
|
總結:
要從一陣列中找出最多連續出現1的次數,只要一邊遍歷一邊計算數量,當碰上0時就判斷是否大於先前出現的最大次數,如果是就取代原本的值然後將計數歸0重新開始計算,直到遍歷結束後做最後一次判斷計數器的值是否比較大,再來決定回傳的內容。