我有ArrayList的ArrayList。我想確保每個組成ArrayLists具有相同數量的項目。有沒有辦法做到這一點在少於n!時間?ArrayList ArrayList:檢查每個ArrayList具有相同數量的項目
回答
絕對!一次遍歷一個ArrayList
。存儲第一個ArrayList
的大小,然後確認所有其他ArrayList
的大小與第一個列表的大小相匹配。所需的總時間是O(n),其中n是列表的數量。
例如:
public static boolean listsHaveSameSize(List<List<?>> allLists) {
List<?> first = null;
for (List<?> list: allLists) {
if (first == null) {
first = list;
} else if (list.size() != first.size()) {
return false;
}
}
return true;
}
希望這有助於!
您需要注意'else'分支 - 'list'可以是'null'。 –
@ TedHopp-我假定頂層列表不包含任何空列表;假設這是否是不合理的? – templatetypedef
不知道,如果它不合理,但防守編碼在這裏不是這樣的負擔。它只需要一個單獨的'else if(list == null){return false; ''一步。如果OP需要檢查內容的一致性,那麼首先不能100%控制頂部列表的內容,所以對我來說似乎是謹慎的。順便說一下,一旦它不是'null'就可以存儲'first'的大小,並且使用它而不是重複調用'size()'。 –
- 1. Clonning ArrayList元素到相同的ArrayList
- 2. 創建一個ArrayList ArrayList與另一個元素相比ArrayList的另一個ArrayList
- 3. 每次ArrayList一次或ArrayList?
- 4. android將項目添加到arraylist from arraylist
- 5. 將arraylist中的每個數字相乘
- 6. ArrayList中的計數項目
- 7. ArrayList中,每個對象只能在一個ArrayList的同時
- 8. 如何訪問與thymeleaf arraylist每個arraylist?
- 9. 上的ArrayList但ArrayList的排序有相同的值
- 10. 在方法中創建與ArrayList參數相同的ArrayList參數
- 11. ArrayList的ArrayList ArrayList的內部ArrayList
- 12. 保存ArrayList項目
- 13. 訪問Arraylist項目
- 14. 從一個ArrayList到另一個ArrayList的Java克隆項目?
- 15. 從ArrayList寫入每個ArrayList對象具有多個值的文本文件(java)
- 16. ArrayList中具有相同的條目多次
- 17. Java ArrayList - 項連接到另一個ArrayList
- 18. ArrayList的ArrayList
- 19. ArrayList的ArrayList
- 20. ArrayList中的ArrayList
- 21. java將項目從一個arraylist添加到另一個arraylist
- 22. vb.net結構的ArrayList的2003具有一個ArrayList
- 23. 項目不存儲在ArrayList中具有不同的XML結構
- 24. 訪問相同ArrayList的HashMap
- 25. 如何檢查ArrayList是否包含另一個ArrayList的元素?
- 26. 顯示ArrayList項目每行3?
- 27. ArrayList的ArrayList的ArrayList不正確的檢索
- 28. 分組相同的項目在一個ArrayList - MusicPlayer
- 29. 在2 ArrayList和返回另一個ArrayList之間查找相同的值
- 30. 檢查兩個arraylist是否包含相同的元素
爲什麼這需要O(n!)時間? – templatetypedef
因爲我一直在寫簡單的代碼太久了,而我的思想融化了。 –