Java 如何找到时间O(n)和空间O(1)的最大差值为0和1的最长子阵列

Java 如何找到时间O(n)和空间O(1)的最大差值为0和1的最长子阵列,java,arrays,difference,contiguous,Java,Arrays,Difference,Contiguous,如何找到时间复杂度为O(n)且空间为O(1)且最大差值为0和1的最长子数组?提前感谢您的反馈和解决方案 例如: 输入数组是{3,3,4,5,5,5,6,6,7,7,7}和 输出应该是这样的:起始索引为6,长度为7 另一个例子: 输入数组是{5,5,5,3,3,2,2,1}和 输出:索引0和长度4 可能的解决办法: 我将嵌套for循环与var I和var j一起使用您不允许复制此循环并将其用于分配,但它应该为您提供有关如何执行此操作的见解 class Find { public stati

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

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

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

可能的解决办法:
我将嵌套for循环与var I和var j一起使用

您不允许复制此循环并将其用于分配,但它应该为您提供有关如何执行此操作的见解

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);
    }
}
类查找{
公共静态void main(字符串参数[]){
int父项[][]={
{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]。长度;
int i=0;//常量空间O(1)
//线性时间O(n)
对于(int j=1;j最大值){
最大值=父项[j]。长度;
i=j;
}
}
System.out.println(“最长子数组索引:+i”);
}
}

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

这听起来像是一个家庭作业问题。此外,还不清楚你在问什么。“0和1的最大差值”是什么意思?作业警报?非常简单,迭代父数组,比较每个子数组的长度,有点像max()实现。空间O(1)将是一个简单变量,循环将是您的O(n)时间复杂性。欢迎使用堆栈溢出。这不是一个代码编写服务;你不能只说问题出在哪里,就指望有人为你写代码。您必须通过发布代码来显示自己在解决问题方面的努力,显示您在解决问题方面的尝试,以及您遇到的困难。你的“可能的解决方案”表明你已经做了一些事情;让我们看看。