LeetCode: 485. Max Consecutive Ones

来源:互联网 发布:c语言delay函数 编辑:程序博客网 时间:2024/06/16 07:06

LeetCode: 485. Max Consecutive Ones

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

Example 1: Input: [1,1,0,1,1,1] Output: 3 Explanation: 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

自己的答案:

public class Solution {    public int findMaxConsecutiveOnes(int[] nums) {        int result = 0;        int temp = 0;        for (int i = 0; i < nums.length; i++) {            if (nums[i] == 1) {                temp++;            } else {                if (result < temp) {                    result = temp;                }                temp = 0;            }        }        if (result < temp) {            result = temp;        }        return result;    }}

最快的答案:

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

Java 4 lines concise solution with explanation

    public int findMaxConsecutiveOnes(int[] nums) {        int maxHere = 0, max = 0;        for (int n : nums)            max = Math.max(max, maxHere = n == 0 ? 0 : maxHere + 1);        return max;     } 
原创粉丝点击