我想弄清楚如何檢查我的數組中的所有23個數字(數字是隨機生成的)不是彼此相等,但我不知道如何做到這一點沒有超級可笑的語句。有沒有其他辦法可以做到這一點?另一個選擇是檢查數組中的任何兩個數字是否相等,但我提出問題的原因與我所做的一樣,因爲我認爲檢查每對數字的平等性比檢查所有數字的不平等性要困難。如何檢查數組中所有整數的不等式?
-1
A
回答
0
你的問題可以用被解決兩個嵌套的for循環
public static boolean hasDuplicates(int[] array)
{
for (int i = 0, length = array.length; i < length; i++)
{
int val = array[i];
for (int j = 0; j < i; j++)
{
if (array[j] == val)
{
return true;
}
}
}
return false;
}
第一環路的陣列中的每個元件遍歷,而第二個檢查是否有任何值的外環的索引之前等於array[i]
的值。您可以安全地使用j < i
以提高性能並確保它不會在同一元素上返回true。
0
可以使用的算法像以下測試每個數組元素是否唯一:
boolean everyNumberIsUnique(int[] numbers) {
for(int i = 0; i < numbers.length; i++) {
for(int j = i + 1; j < numbers.length; j++) {
if(numbers[i] == numbers[j]) return false;
}
}
return true;
}
它簡單地彼此抵靠每個數字比較,並返回false
如果任何兩個數是相等的。
+0
這將不起作用,它會將'array [1]'與自身進行比較並立即返回false。 – Clashsoft
+0
@Clashsoft感謝提示,經典錯誤。忘了補充+ i。 –
0
如果您的數字上限相對較低(比如說少於100萬)並且不關心內存使用情況,那麼您可以創建一個布爾數組並將每個元素設置爲true(如果其索引處於你的數組。這是O(n),所以它可能是你能做的最好的,但是,無可否認,你必須符合上述標準。
public boolean allDifferent(int[] numbers)
{
//everything in the array defaults to false
boolean[] array = new boolean[upperBound+1];
for (int i = 0; i < numbers.length; i++)
{
if (array[numbers[i]]) //if we've already seen this number (aka duplicate)
{
return false;
}
array[numbers[i]] = true; //note that we have now seen this number
}
return true;
}
相關問題
- 1. 如何檢查數組中的所有值是否相等。 C++
- 2. 檢查數組中的所有值是否不相等(java)
- 3. 檢查數組中的所有字符是否爲整數
- 4. 如何檢查數組中的所有元素是否都是正整數?
- 5. 如何檢查數組中的所有字段包含數據
- 6. 對從0到1的所有整數進行數組檢查
- 7. 如何使用遞歸檢查數組中的所有值是否相等?
- 8. 如何檢查所有數組等於角js中的某個值?
- 9. 如何遍歷數組中的數組以查看所有值是否相等?
- 10. 檢查數組中的特定整數
- 11. 如何檢查整個數組?
- 12. 如何在php中檢查所有空值的關聯數組?
- 13. 如何檢查數組中的所有值是否相同?
- 14. 如何檢查數組中的所有元素是否爲空
- 15. 如何檢查一個數組的所有值是否等於0?
- 16. 如何在Java中初始化數組中的所有整數?
- 17. 檢查病例報告中所有組的檢查數
- 18. 如何檢查Android的資源類型整數數組中
- 19. 如何有效檢查(strpos(...))數組的所有元素?
- 20. 如何檢查一個整數中相同的數字而不使用數組?
- 21. 檢查是否有任何數組在MATLAB中是等價的
- 22. 如何刪除數組中所有重複的整數java
- 23. 如何檢查Cell是否有整數?
- 24. PHP函數檢查關聯數組中有多少個整數
- 25. 如何檢查數組中的4個不同數字是否相等?
- 26. 如何整數轉換成等於整數元素的數組
- 27. 檢查組中的雙整數
- 28. 檢查數組的值是整數
- 29. 如何將所有記錄中的所有整數數組合併到postgres中的單個數組中
- 30. 如何檢查整數是否在數組中?
嗨帕特里克,你有什麼試過?搓你的手,寫一些代碼給我們看! – moonwave99
考慮尋找for-loops。 –
@ moonwave99對於遲到的回覆,抱歉抱歉,我有點忘了我已經將我的facebook與堆棧溢出關聯起來,並最終使用了一段時間的其他帳戶,並且剛剛結束第一次再次登錄該帳戶。光明的一面,3年過去了,作爲軟件工程專業,我現在已經進入大學第二年了!好極了! –