我寫了一個關於找出具有相同數量的整數序列的最長子序列的代碼。用戶輸入一個以0結尾的整數序列,代碼完成剩下的工作,代碼只適用於小序列,我看不出錯誤的位置。這裏是我的代碼:查找列表中等效值的最長序列?
import java.util.*;
public class test1 {
private static List<Integer> list = new ArrayList<>();
private static int input;
private static int counter = 1;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter a series of numbers ending with 0: ");
boolean itsOk = true;
while (itsOk) {
input = scan.nextInt();
list.add(input);
if (input == 0)
itsOk = false;
}
int index = 0;
for (int i = 1; i < list.size(); i++)
if (list.get(i).equals(list.get(i - 1))) {
counter++;
index = i - 2;
}
System.out.println("The longest same number sequence starts at index "
+ index + " with " + counter + " values of " + list.get(index));
Collections.sort(list);
System.out.println("\tThe sorted series of numbers is : " + list);
}
}
'「爲什麼我的代碼不能很好地工作?」 - 就像旁白一樣,請努力使問題標題更具信息性。試着讓它總結你的問題,而不是你的沮喪。否則,你會增加我們的挫折感,這是不好的,因爲我們是志願者。 –
至於你的問題本身,是時候用調試器進行一些調試了。在嘗試修復它之前,您必須先隔離並識別錯誤。 –
您近了,但您的代碼有太多的邏輯錯誤,以便在此處找到明確的答案。我還建議更仔細地檢查您的邏輯,並使用調試器幫助逐步完成。順便提一下,當發現一系列數據中的最大值時,一般提示是跟蹤當前最大值並在遇到新的最大值時更新。 –