代码随想录第二十四天 | 回溯算法
今天结束了二叉树的学习, 开始新的一章了
class Solution { List<List<Integer>> res = new ArrayList<List<Integer>>(); List<Integer> list = new ArrayList<Integer>(); public void backTracing(int start, int end, int k){ if(list.size()==k){ List<Integer> temp = new ArrayList<Integer>(); for(int i = 0; i<k; i++){ // System.out.println(list.get(i)); temp.add(list.get(i)); } res.add(list); return; } for(int i = start; i<= end; i++){ list.add(i); backTracing(i + 1, end, k); list.remove(list.size() - 1); } } public List<List<Integer>> combine(int n, int k) { backTracing(1, n, k); return res; } }
终止条件是size = k,用全局变量来储存符合条件的list
今天初步学习了回溯算法

浙公网安备 33010602011771号