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);
添加回答
舉報