方法一:一次遍历
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int cnt=0,maxcnt=0;
for(int i=0;i<nums.size();i++){
if(nums[i]==1) cnt++;
else{
maxcnt=cnt>maxcnt?cnt:maxcnt;
cnt=0;
}
}
return cnt>maxcnt?cnt:maxcnt; //注意
}
};
方法二:动态规划
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int len=nums.size();
vector<int> dp(len);
dp[0]=nums[0];
for(int i=1;i<len;i++){
if(nums[i]==1) dp[i]=dp[i-1]+1;
else dp[i]=0;
}
int maxcnt=0;
for(int i=0;i<len;i++){
maxcnt=dp[i]>maxcnt?dp[i]:maxcnt;
}
return maxcnt;
}
};