Leetcode 22, 77: 回溯问题
来源:互联网 发布:trivium算法 编辑:程序博客网 时间:2024/05/20 02:54
22. Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
[ "((()))", "(()())", "(())()", "()(())", "()()()"]
code:
class Solution { public List<String> generateParenthesis(int n) { List<String> list = new ArrayList<String>(); backtrack(list, "", 0, 0, n); return list; } public void backtrack(List<String> list, String str, int open, int close, int max){ if(str.length() == max*2){ list.add(str); return; } if(open < max) backtrack(list, str + "(", open+1, close, max); if(close < open) backtrack(list, str+")", open, close+1, max); }}
77. Combinations
Given two integers n and k, return all possible combinations of k numbers out of 1 … n.
For example,
If n = 4 and k = 2, a solution is:
[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]
code:
class Solution { public List<List<Integer>> combine(int n, int k) { List<List<Integer>> res = new LinkedList<List<Integer>>(); List<Integer> comb = new LinkedList<>(); dfs(res, comb, n, k, 1); return res; } public void dfs(List<List<Integer>> res, List<Integer> comb, int n, int k, int start) { if(comb.size() == k) { res.add(new LinkedList<Integer>(comb)); return; } for(int i=start; i<=n; i++) { comb.add(i); dfs(res, comb, n, k, i+1); comb.remove(comb.size()-1); } }}
特别注意:
res.add(new LinkedList<Integer>(comb));
dfs(res, comb, n, k, i+1);
阅读全文
0 0
- Leetcode 22, 77: 回溯问题
- leetcode Combination Sum II回溯问题
- [leetcode] 回溯法 Combination Sum 系列问题
- LeetCode回溯问题合集(general solution)
- leetcode回溯
- LeetCode-77-Combinations(回溯法)-Medium
- 【LeetCode】N-Queens II N皇后问题 回溯法
- 【leetcode】46. Permutations 【回溯问题的通用方法】【java】
- LeetCode 131. Palindrome Partitioning 树形问题,状态回溯
- LeetCode 回溯算法 backtracking
- leetcode 回溯法 模板
- [leetcode][回溯] Generate Parentheses
- [leetcode][回溯] Combination Sum
- [leetcode][回溯] Subsets
- [leetcode][回溯] Gray Code
- [leetcode][回溯] Subsets II
- [leetcode][回溯] Combinations
- LeetCode Sudoku Solver 回溯
- InvalidateRect,invalidate,updatewindow(转)
- Spring MVC
- leetcode---generate-parentheses---dfs
- windows查看端口被什么进程使用并设置该端口可用
- Mac上编译安装 opencv和opencv_contrib
- Leetcode 22, 77: 回溯问题
- 近日Linux笔记
- dubbo
- ThreadLocal详解
- java缓存
- Python基本数据类型
- 动态加载总结
- 为什么jsonp只支持get请求?
- ACM的奇技淫巧-输出外挂(相关博客)