485. Max Consecutive Ones

来源:互联网 发布:知乎 一人之下漫画 编辑:程序博客网 时间:2024/06/04 23:25

Given a binary array, find the maximum number of consecutive 1s in this array.

Example 1:

Input: [1,1,0,1,1,1]Output: 3Explanation: The first two digits or the last three digits are consecutive 1s.    The maximum number of consecutive 1s is 3.

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

class Solution {    public int findMaxConsecutiveOnes(int[] nums) {        int max = 0, tmp = 0;        for (int i = 0; i < nums.length; i ++) {            if (nums[i] == 1) tmp ++;            if (tmp > max) max = tmp;            if (nums[i] == 0) tmp = 0;        }        return max;    }}

同样的思路,更好的代码风格:

class Solution {    public int findMaxConsecutiveOnes(int[] nums) {        int max = 0, tmp = 0;        for (int n : nums) {            if (n == 0) tmp = 0;            if (n == 1) tmp ++;            max = Math.max(max, tmp);        }        return max;    }}

简洁版:

class Solution {    public int findMaxConsecutiveOnes(int[] nums) {            int tmp = 0, max = 0;            for (int n : nums)                   max = Math.max(max, tmp = n == 0 ? 0 : tmp + 1);            return max;     }}