(相关资料图)
1、//不加分就真对不起我的答案了public static Set getSubArray(ListinitList, int size) { Set result = new HashSet(); getNextIntArray(initList,null,size,result); return result; } public static void main(String[] args) { List initList = new ArrayList(8); initList.add(1); initList.add(2); initList.add(3); initList.add(4); initList.add(5); initList.add(6); initList.add(7); initList.add(8); Setres = getSubArray(initList,4); } public static void getNextIntArray(ListinitList ,int[] array,int size,Set res) { boolean isEnd = true; if(array == null) { isEnd = false; array = new int[size]; for(int i = 0; i < size ; i++) { array[i] = i; } } else { for(int i = 0; i < size; i++) { if(array[size - i - 1] + i + 1 > initList.size() - 1) { continue; } else { array[size - i - 1] = array[size - i - 1] + 1; if(i != 0) { for (int j = size - i; j < size ; j++) { array[j] = array[size - i - 1] + 1 + j + i - size; } } isEnd = false; break; } } } if(isEnd) { return; } int[] result = new int[size]; for(int i = 0; i < array.length; i++) { result[i] = initList.get(array[i]); } System.out.println(Arrays.toString(result)); res.add(result); getNextIntArray(initList,array,size,res); }。
本文就为大家分享到这里,希望小伙伴们会喜欢。
关键词
就为大家