1
我有一個ArrayList
,我希望找到一個給定大小的所有組合,而不用重複其內部的單個函數(內置或不內置)。例如:用於計算排列而不重複的Java函數
ArrayList<Integer> numbers = Array.asList(96, 32, 65, 21);
getCombinationsWithoutRepeats(numbers, 2);
輸出:
>>> [[96, 32], [96, 65], [96, 21], [32, 65], [32, 21], [65, 21]]
我將如何創造這個功能還是有,這是否一個內置的功能?
相關:[數組排列](http://stackoverflow.com/a/2920349/335858)。 – dasblinkenlight
我們可以假設輸入數組只有唯一的元素(我假設你在輸出中指的是「重複」)?一個非常明顯的解決方案是首先生成大小爲'n'的所有組合(最常見的方法是用一個「n」位數表示該組,並且每次重複增加。每次,數字的按位表示都會告訴您哪些元素包含/排除在當前組合中),然後對每個組合進行排列(例如,流行的詞典解決方案:http://en.wikipedia.org/wiki/Permutation#Generation_in_lexicographic_order)。 – rliu
你試過了什麼? – Ayman