求陣列中k個數的所有組合

Abel0938發表於2020-09-27
	/**
	 * 求陣列中 k個元素序列 的所有組合
	 * @param start
	 * @param array
	 * @param length
	 * @param k
	 * @param list
	 * @param used
	 * @param res
	 */
	public static void dfs(int start, int[] array, int length, int k,
						   List<Integer> list, boolean[] used, List<List<Integer>> res) {
		if (k == 0) {
			res.add(new ArrayList<>(list));
			return;
		}
		for (int i=start; i<length; i++) {
			if (used[i]) continue;
			used[i] = true;
			list.add(array[i]);
			dfs(i, array, length, k-1, list, used, res);
			list.remove(list.size()-1);
			used[i] = false;
		}
	}

相關文章