我正在我的类中编写一个名为 ArrayIntList 的方法。这个类有两个字段,一个 int 数组和一个 int size,它表示数组的长度。我在这里忽略了构造函数,直接转到我有问题的方法。我正在尝试编写的方法是longestSortedSequence,它将返回列表中最长排序整数序列的int 类型。例如,这将返回
[1, 3, 5, 2, 9, 7, -3, 0, 42, 308, 17] ---> 4,
[1, 2, 3, 4, 0, 19, 1, 1, 2, 2, 3, 3]----> 6
下面的代码适用于第一种情况,但在第二种情况下失败,我无法理解为什么。
public class ArrayIntList {
private int[] elementData;
private int size;
public int longestSortedSequence() {
//this stores the longest sequence possible
int max_count=0;
//this stores the counts till not sorted sequence is encountered
// and is flushed to zero before the next counting begins
int count=0;
int i=0;
while(i<size-1) {
if (elementData[i]<=elementData[i+1]){
count++;
}
else {
max_count=Math.max(max_count,count+1);
count=0;
}
i++;
}
return max_count;
}
任何帮助将非常感激?谢谢