如何找到最大差异为 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 循环
如何找到最大差异为 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 循环
您不得复制此内容并将其用于您的作业,但它应该为您提供有关如何执行此操作的见解。
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);
}
}
我今天可以养活你,但你需要学习这些东西并养活自己一辈子……