2
A
回答
2
分步:
- 獲取的第一要素。
循環所有數組元素並計算它們不與 匹配的第一個元素的次數。
- 如果所有的元素匹配,你有你的答案(都是平等的)。
- 如果只有一個元素不匹配,則表示您的答案(其中一個 不同)。
- 如果某些元素不匹配,則說明您的答案(超過 則不同)。
在沒有元素匹配的情況下,獲取第二個元素並重復 測試。
- 如果只有一個元素不匹配,再次只有一個不同(第一個)。
- 否則,不同元素的數量大於1。
4
使用地圖。
Map<X, Integer> map = new HashMap<X, Integer>(); // where X is the array type
Integer ct;
for(X item : array){
ct = map.get(item);
if(ct == 0) ct = Integer.valueOf(1);
else ct = Integer.valueOf(ct.intValue()+1);
map.put(item, ct);
}
// now test if map.values() consists of Integer.valueOf(1) and (optionally)
// another positive integer (thx aioobe)
1
我會選擇的方法是:
迭代所有元素,並把它們放在一個地圖(HashMap的Java中)。
關鍵是元素,值是外觀的計數器。
例如:您的陣列:AAAAB
地圖:
A - > 4 乙 - > 1
您已經構建之後,地圖很容易找到,如果你的陣列匹配標準。
- 該地圖必須只有2個元素(map.size())。
- 完全元素中的一個具有計數器1
如果您認爲增加的地圖在固定時間內發生了,你就會有2N的整體複雜性(遍歷數組和遍歷圖)。
2
我想出了這招:-)
public static boolean allButOneSame(int[] arr) {
if (arr.length <= 1)
return arr.length == 1;
Arrays.sort(arr);
return arr[0] != arr[arr.length-1] &&
(arr[0] == arr[arr.length-2] ||
arr[1] == arr[arr.length-1]);
}
(可比數值,如整數憑藉雖然!)
0
這裏的另一種方法:
public static <Item> boolean allButOneSame(List<Item> items) {
// Make sure we have 2 different elements (or 1 element in total)
if (new HashSet<Item>(items).size() != 2)
return items.size() == 1;
// Create a temporary copy
List<Item> tmp = new ArrayList<Item>(items);
// Remove all elements equal to the first one.
tmp.removeAll(Collections.singleton(items.get(0)));
// Check the number of remaining elements.
return tmp.size() == 1 || tmp.size() == items.size() - 1;
}
它需要一個List
作爲輸入。如果以數組開頭,則使用Arrays.asList
。
0
1
- 迭代陣列,由第一元件,並且x + 1個元素,其中x是比較2,3,4,... array.length()
- 如果比較失敗則遞增計數器
如果((計數器== 0)||((計數器> 1)& &(計數器!= array.length-1)))然後condi灰不滿足
計數器= 0表示,所有都是相同的元件
計數器= array.length-1裝置的排序順序例如:4,5,5,5,5,5,5
複雜性 - >時間:O(n),沒有額外的空間,除了計數器
相關問題
- 1. 檢查數組中的所有元素是否都是相同的值
- 2. 檢查數組中的所有元素是否具有相同的值Swift
- 3. 查找幾個數組的元素是否具有相同的座標
- 4. 檢查一個數組的所有元素是否與另一個數組的所有元素具有相同的值
- 5. 確定是否所有元素的數組是素數
- 6. 我有一個數組,但只輸出第一個元素
- 7. 如何檢測元素是否已滾出,但只有一次?
- 8. 測試一個向量的所有元素是否相等
- 9. 只選擇一個元素,不是所有的元素 - jQuery
- 10. 在一個數組中加上所有相同的元素
- 11. 你怎麼知道一個數組是否具有相同的連續元素?
- 12. Java:查找一個數組是否至少有3個元素具有相同的值
- 13. 如何找出數組中的一個元素是否具有虛假的屬性值,以及是否所有元素都具有使用Linq的真值
- 14. 如何找出所有數組元素是否匹配一些條件?
- 15. 如何簡單檢查數組中的所有元素是否相同?
- 16. 如何在matlab中檢查數組中的所有元素是否相同?
- 17. 找出某個特定ID的所有元素是否具有相同的區域
- 18. 如何檢查列表中的所有元素是否相同?
- 19. Ruby - 數組A是否包含數組B的所有元素
- 20. 期望所有的數組元素是同一類
- 21. 數組是否有一個元素等於元素?
- 22. 找出元素是否有聲明值
- 23. 測試兩個二叉搜索樹是否具有相同的一組元素?
- 24. 檢查元素是否只有一個子元素
- 25. 如何檢查兩個數組中是否有相同的元素?
- 26. 檢查兩個數組是否具有相同順序的元素
- 27. Java:如何確定一個數組是否有兩個相等的元素?
- 28. 影響所有,但是,一個元素與jQuery的每個()
- 29. 如何檢查列中的所有元素是否具有相同的文本?
- 30. 比較兩個數組,兩個數組之間是否有共同的元素?
所以java **或** C?他們是不同的語言,所以你最好選擇一個。 –
哦,並且注意C也不是** C++。 –