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

标签 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。我不知道我的代码有什么问题。有人可以给我线索吗?

谢谢!!!

最佳答案

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;
}

关于java - 当输入变得很大时,findConsecutiveOnes Java代码会出现问题,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42059609/

相关文章:

python - 快速搜索大型结构化 numpy 数组

java - 使用 Spring 在 JSP 上显示值列表

Java Spring MVC - 模型中类的动态属性名称

java - 用 Objective c 实现线程锁

python - 在两个 for 循环中迭代列表元素

arrays - 查找数组中最大数字时的奇怪行为

C 函数数组

javascript - 谷歌地图 API 无法从数组设置折线

java - JOOX:获取Element的值

java - 为什么我们需要在 Java 中进行多进程编程?