我正在嘗試編寫一個接受整數數組並返回該數組中唯一值數的方法。例如,對於數組{5,6,5,7,5,7},該方法返回3,因爲有3個重複項(5,5,7)。我不確定我出錯的地方,我嘗試創建一個變量list
,這樣當我打電話給numUnique(list)
時,它會給我我的答案,但這似乎不起作用。有什麼建議麼?查找用戶輸入數組中唯一值的數
代碼:
import java.util.Scanner;
public class Unique_Values {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] list = new int[n];
System.out.printf("%d%n ", list);
}
public static int numUnique(int[] list) {
if (list.length == 0) {
return 0;
} else {
int count = 1;
for (int i = 1; i < list.length; i++) {
if (list[i] != list[i - 1]) {
count++;
}
}
return count;
}
}
}
「似乎並沒有工作「並不是一個明確的問題描述。你的意見是什麼?你期望輸出什麼? – shmosel
您的方法只檢查相鄰的重複項。 – shmosel
你需要一個內部循環。你只是在數字之前直接檢查元素,例如:'4545'你比較'5'到'4'而不是'5'到'5'。您需要將數組中的每個數字與所有其他數字進行比較。你可以使用內部循環來做到這一點...... – brso05