当输入变得很大时,findConsecutiveOnes Java代码会出现问题,为什么?

时间:2017-02-06 02:32:46

标签: java arrays

我被要求找到阵列中最大的连续1的数量。

这意味着,在[1,0,1,1]中,答案应为2。

我写了一个代码,当输入是小数组时,它运行良好。

public int findMaxConsecutiveOnes(int[] nums) {
    if (nums == null) return 0;

    int max = 0;
    int finalMax = 0;

    for (int i = 0; i < nums.length; i++) {
        if (nums[i] == 1){
            max += 1;
        } else {
            if (max != 0) finalMax = max;
            max = 0;
        }
        finalMax = Math.max(max, finalMax);
    }
    return finalMax;
}

但是当你尝试2840的1阵列时,它将返回2317.我不知道我的代码有什么问题。谁能给我一个线索?

感谢!!!

1 个答案:

答案 0 :(得分:-1)

public int findMaxConsecutiveOnes(int[] nums) {
    if (nums == null) return 0;

    int max = 0;
    int finalMax = 0;

    for (int i = 0; i < nums.length; i++) {
        if (nums[i] == 1){
            max += 1;
        } else {
            finalMax = Math.max(max, finalMax);
            max = 0;
        }

    }
    finalMax = Math.max(max, finalMax);
    return finalMax;
}