3 回答
TA贡献1876条经验 获得超7个赞
由于 89 较大,我认为您需要数组中最长非递减子序列的局部最大值。这个问题没有很好地表述,所以可能没有作业。
array: 12 87 3 10 55 69 40
sequences: 12 87
3 10 55 *69* answer
40
int maxOfLongestSubsequence(int[] a) {
int maxSeqLength = 0;
int max = Integer.MIN_VALUE;
int seqStart = -1;
for (int i = 0; i <= a.length; ++i) {
if (i == 0 || i == a.length - 1 || a[i] < a[i - 1]) { // New subsequence
int seqLength = i - seqStart;
if (i - seqLength > maxSeqLength) {
maxSeqLength = seqLength;
max = a[i - 1];
}
seqStart = i;
}
}
return max;
}
阐述问题。像我一样描述数据。并将其编程出来。
TA贡献1772条经验 获得超8个赞
您可以像这样选择 int 数组的最大值:
int [] numbers = new int[]{12,87,3,10,55,69,40};
int max = numbers[0];
for(int current : numbers) {
max = current >= max ? current : max;
}
System.out.println(max);
添加回答
举报