原题如下:
————————————————————————————————————————
方法一:
遍历数组,遇到1时,countOnes就自加1,遇到0时countOnes变为0,并且每次给countOnes赋值后都和maxOnes对比,二者较大的赋值给新的maxOnes。
java解:
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int maxOnes=0;
int countOnes=0;
for(int i=0;i<nums.length;i++){
if(nums[i]==1){
countOnes++;
if(countOnes>maxOnes){
maxOnes=countOnes;
}
}
else{countOnes=0;}
}return maxOnes;
}
}
c语言解:
int findMaxConsecutiveOnes(int* nums, int numsSize){
int countOnes=0;
int maxOnes=0;
for(int i = 0;i<numsSize;i++){
if(nums[i]==1){
countOnes++;
if(countOnes>maxOnes){
maxOnes=countOnes;
}
}
else{countOnes=0;}
}return maxOnes;
}
python3解:
class Solution:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
maxOnes=0;
countOnes=0;
for i in range(0,len(nums)):
if nums[i]==1:
countOnes+=1
if countOnes>maxOnes:
maxOnes=countOnes
else:
countOnes=0
return maxOnes
C++解法:
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int maxOnes=0,countOnes=0;
for(int i=0;i<nums.size();i++){
if(nums[i]==1){
countOnes++;
countOnes<maxOnes?:maxOnes=countOnes;
}
else{countOnes=0;}
}return maxOnes;
}
};