【发布时间】:2021-05-06 17:58:45
【问题描述】:
考虑一个随机长度和随机正整数值的数组 A[1..n]。我们将 A 的子数组定义为 A 的连续段。我们将从位置 k 到位置 l(都包括在内)的子数组表示为 A[k..l]。如果 A[j] ≤ A[j + 1] 对于 k ≤ j 4,而 A[4..7] = [4; 6; 6; 7] 是数组 A 中最长的上升。该算法不能使用任何辅助存储,例如“额外”数组来执行需要。我不知道如何解决这个问题,这是我最接近解决方案的方法。
class practice {
public static void ascentLength(int arr[], int size) {
int length = 0;
int index = 0;
for (int i = 0; i < size - 1; i++) {
index = i;
if (arr[0] <= arr[i + 1]) {
System.out.println(arr[i]);
length++;
}
if (arr[0] >= arr[i + 1]) {
length = 0;
}
}
System.out.println("length: " + length);
}
/* Driver program to test above function */
public static void main(String[] args) {
int arr[] = {5, 3, 6, 4, 6, 6, 7, 5};
int n = arr.length;
ascentLength(arr, n);
}
}
【问题讨论】:
标签: java arrays sub-array contiguous