-2

如何找到最大差异为 0 和 1 且时间复杂度为 O(n) 且空间为 O(1) 的最长子数组?提前感谢您的反馈和解决方案!

例如:输入数组是 {3, 3, 4, 5, 5, 5, 6, 6, 7, 7, 7, 7, 7},输出应该是这样的:起始索引是 6,长度为 7。

另一个例子:输入数组是 {5, 5, 5, 5, 3, 3, 2, 2, 1},输出:索引 0 和长度 4。

可能的解决方案:我正在使用带有 var i 和 var j 的嵌套 for 循环

4

1 回答 1

0

您不得复制此内容并将其用于您的作业,但它应该为您提供有关如何执行此操作的见解。

class Find {
    public static void main(String args[]) {
        int parent[][] = {
            {1,2,3,4},
            {8,7,6,5,8},
            {9,8},
            {8,7,6,5,8,0,0,0,9,9,9},
            {8}
        };

        int max = parent[0].length;
        int i = 0;//CONSTANT SPACE O(1)
        //LINEAR TIME O(n)
        for (int j = 1; j < parent.length; j++) {
            if (parent[j].length > max) {
                max = parent[j].length;
                i = j;
            }
        }

        System.out.println("Longest sub-array index: " + i);
    }
}

我今天可以养活你,但你需要学习这些东西并养活自己一辈子……

于 2017-09-27T04:26:13.383 回答