文章目录
-
- Leetcode 216. 组合总和 III
-
- 解题思路
- 代码
- 总结
- Leetcode 17. 电话号码的字母组合
-
- 解题思路
- 代码
- 总结
草稿图网站
java的Deque
Leetcode 216. 组合总和 III
题目:216. 组合总和 III
解析:代码随想录解析
解题思路
回溯三部曲:确定递归函数参数;确定终止条件;单层搜索过程
代码
class Solution {
ListListInteger>> res = new ArrayList>();
ListInteger> paths = new ArrayList>();
int curSum = 0;
private void backtracking(int k, int n, int startIndex) {
//忘了这个减枝
if (curSum > n) return;
if (paths.size() == k) {
if (curSum == n)
res.add(new ArrayList>(paths));
return;
}
for (int i = startIndex; i 9; i++) {
paths.add(i);
curSum += i;
backtracking(k, n, i + 1);
paths.remove(paths.size()-1);
curSum -= i;
}
}
public ListListInteger>> combinationSum3(int k, int n) {
backtracking(k, n, 1);
return res;
}
}
总结
暂无
Leetcode 17. 电话号码的字母组合
题目:17. 电话号码的字母组合
解析:代码随想录解析
解题思路
函数参数遍历数字,函数内遍历数字按键对应的字母
代码
class Solution {
ListString> res = new ArrayList>();
StringBuilder sb = new StringBuilder();
private void backtracking(String digits, String[] numString, int startIndex) {
if (startIndex == digits.length()) {
if (sb.length() > 0)
res.add(sb.toString());
return;
}
String tmp = numString[digits.charAt(startIndex) - '0'];
for (int i = 0; i tmp.length(); i++) {
sb.append(tmp.charAt(i));
backtracking(digits, numString, startIndex + 1);
sb.deleteCharAt(sb.length() - 1);
}
}
public ListString> le服务器托管tterCombinations(String digits) {
String[] NUMSTRING = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs","tuv", "wxyz"};
backtracking(digits, NUMSTRING, 0);
return res;
}
}
总结
暂无
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net