这是我到目前为止所得到的。我试图做的是在 if 语句中使用更大或等于来查找序列。然后,当该值不再大于或等于先前的数字时,它进入 else 语句,该语句记录该序列号并重置它,以便重新开始计数。所有这些序列值都保存在一个数组列表中,所以当我完成后,我可以做一个简单的比较来找到最大的序列号并返回它。我需要关于收集序列数据的第一个 if/else 语句的帮助,因为我很确定这是我的问题发生的地方。
public class LongestSequence {
public static int getMaxSequence(ArrayList<Integer> list) {
int sequence = 0;
ArrayList<Integer> temp = new ArrayList<Integer>();
for (int i = 0; i < list.size() - 1; i++) {
//this is where things go wrong. I think.
if (list.get(i + 1) >= list.get(i)) {
sequence++;
} else {
//record the number in your arraylist
temp.add(sequence);
//reset count to 0
sequence = 0;
}
}
int greatestnum = 0;
for (int i = 0; i < temp.size() - 1; i++) {
if (temp.get(i) < temp.get(i + 1)) {
greatestnum = temp.get(i + 1);
} else {
greatestnum = temp.get(i);
}
}
return greatestnum;
}