题目描述
方法:暴力求解
自己想到的思路就是遍历一遍,创建一个新的vector和记录最大值的v_max
将等于1的放入新vector中,然后比较新容器大小和v_max,如果大于就记录下最大的新容器大小。目的是记录最大的长度
改进:将新数组换位整形int记录。会减少空间复杂度
C++实现
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
vector<int> v;
// int v_max = 0;
// for(int i=0 ; i<nums.size();i++)
// {
// if (nums[i] == 1)
// {
// v.push_back(1);
// if(v_max <= v.size())
// {
// v_max = v.size();
// }
// }
// else
// {
// v.clear();
// }
// }
// return v_max;
int count =0;
int result = 0;
for (int i = 0;i<nums.size();i++)
{
if (nums[i]==1)
{
count +=1;
result =max(result,count);
}
else
{
count = 0;
}
}
return result;
}
};
python实现
class Solution:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
# v =[]
# max_v = 0
# for i in nums:
# if i==1:
# v.append(1)
# if(max_v < len(v)):
# max_v =len(v)
# else:
# v.clear()
# return max_v
count = 0
result = 0
for i in nums:
if i == 1:
count +=1
result =max(count,result)
else:
count =0
return result