生活随笔
收集整理的這篇文章主要介紹了
最大连续1的个数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解法一:暴力遍歷
class Solution {
public:int findMaxConsecutiveOnes(vector
<int>& nums
) {int res
=0,temp
=0;auto it
=nums
.begin();while(it
!=nums
.end()){if(*(it
++)==1) ++temp
;else {res
=max(res
,temp
);temp
=0;}}res
=max(res
,temp
);return res
;}
};
解法二:雙指針法(滑動窗口)
class Solution {
public:int findMaxConsecutiveOnes(vector
<int>& nums
) {int l
=0,r
=0;int res
=0;int n
=nums
.size();while(r
<n
){if(nums
[r
]==1) r
++;else{l
=++r
;}res
=max(res
,r
-l
);}return res
;}
};
解法三:動態規劃
class Solution {
public:int findMaxConsecutiveOnes(vector
<int>& nums
) {vector
<int> dp(nums
.size()+1,0);if(nums
[0]==1) dp
[0]=1;else dp
[0]=0;int res
=dp
[0];for(int ii
=1;ii
<nums
.size();ii
++){if(nums
[ii
]==nums
[ii
-1]&&nums
[ii
]==1) dp
[ii
]=dp
[ii
-1]+1;else if(nums
[ii
]==1) dp
[ii
]=1;else if(nums
[ii
]==0) dp
[ii
]=0;if(dp
[ii
]>res
) res
=dp
[ii
];}return res
;}
};
總結
以上是生活随笔為你收集整理的最大连续1的个数的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。