mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 11:34:46 +08:00
@ -416,24 +416,31 @@ func backTree(n,k,startIndex int,track *[]int,result *[][]int){
|
||||
* @return {number[][]}
|
||||
*/
|
||||
var combinationSum3 = function(k, n) {
|
||||
const backtrack = (start) => {
|
||||
const l = path.length;
|
||||
if (l === k) {
|
||||
const sum = path.reduce((a, b) => a + b);
|
||||
if (sum === n) {
|
||||
res.push([...path]);
|
||||
}
|
||||
return;
|
||||
let res = [];
|
||||
let path = [];
|
||||
let sum = 0;
|
||||
const dfs = (path,index) => {
|
||||
// 剪枝操作
|
||||
if (sum > n){
|
||||
return
|
||||
}
|
||||
for (let i = start; i <= 9 - (k - l) + 1; i++) {
|
||||
if (path.length == k) {
|
||||
if(sum == n){
|
||||
res.push([...path]);
|
||||
return
|
||||
}
|
||||
}
|
||||
for (let i = index; i <= 9 - (k-path.length) + 1;i++) {
|
||||
path.push(i);
|
||||
backtrack(i + 1);
|
||||
path.pop();
|
||||
sum = sum + i;
|
||||
index += 1;
|
||||
dfs(path,index);
|
||||
sum -= i
|
||||
path.pop()
|
||||
}
|
||||
}
|
||||
let res = [], path = [];
|
||||
backtrack(1);
|
||||
return res;
|
||||
dfs(path,1);
|
||||
return res
|
||||
};
|
||||
```
|
||||
|
||||
|
@ -328,13 +328,11 @@ var lowestCommonAncestor = function(root, p, q) {
|
||||
}
|
||||
if(root.val>p.val&&root.val>q.val) {
|
||||
// 向左子树查询
|
||||
let left = lowestCommonAncestor(root.left,p,q);
|
||||
return left !== null&&left;
|
||||
return root.left = lowestCommonAncestor(root.left,p,q);
|
||||
}
|
||||
if(root.val<p.val&&root.val<q.val) {
|
||||
// 向右子树查询
|
||||
let right = lowestCommonAncestor(root.right,p,q);
|
||||
return right !== null&&right;
|
||||
return root.right = lowestCommonAncestor(root.right,p,q);
|
||||
}
|
||||
return root;
|
||||
};
|
||||
|
Reference in New Issue
Block a user