Skip to content

Commit 74a5c0b

Browse files
committed
update
1 parent 32aa9fa commit 74a5c0b

File tree

10 files changed

+227
-88
lines changed

10 files changed

+227
-88
lines changed

CATEGORY.md

Lines changed: 24 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -6,44 +6,8 @@ https://github.com/garciparedes
66

77
https://garciparedes.me/#headers
88

9-
- Breadth First Search +5
10-
11-
- [ ] 107
12-
- [ ] 542
13-
- [ ] 801
14-
- [ ] 877
15-
16-
- Depth First Search +8
17-
18-
- [ ] 111
19-
- [ ] 199
20-
- [ ] 337
21-
- [ ] 491
22-
- [ ] 494
23-
- [ ] 513
24-
- [ ] 515
25-
- [ ] 542
26-
27-
- Dynamic Programming +7
28-
29-
- [ ] 1143
30-
- [ ] 5
31-
- [ ] 91
32-
- [ ] 152
33-
- [ ] 264
34-
- [ ] 279
35-
- [ ] 300
36-
- [ ] 309
37-
- [ ] 322
38-
- [ ] 343
39-
- [ ] 357
40-
- [ ] 376
41-
429
- Greedy
4310

44-
- [ ] 134
45-
- [ ] 376
46-
- [ ] 392
4711
- [ ] 402
4812
- [ ] 406
4913
- [ ] 435
@@ -116,3 +80,27 @@ https://garciparedes.me/#headers
11680
- [ ] 78
11781
- [ ] 306
11882
- [ ] 872
83+
84+
- Breadth First Search +5
85+
86+
- [ ] 107
87+
- [ ] 877
88+
89+
- Depth First Search +8
90+
91+
- [ ] 337
92+
93+
- Dynamic Programming +7
94+
95+
- [ ] 5
96+
- [ ] 91
97+
- [ ] 152
98+
- [ ] 264
99+
- [ ] 279
100+
- [ ] 300
101+
- [ ] 309
102+
- [ ] 322
103+
- [ ] 343
104+
- [ ] 357
105+
- [ ] 376
106+
- [ ] 1143
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* function TreeNode(val) {
4+
* this.val = val;
5+
* this.left = this.right = null;
6+
* }
7+
*/
8+
/**
9+
* @param {TreeNode} root
10+
* @return {number}
11+
*/
12+
var minDepth = function (root) {
13+
if (!root) return 0;
14+
let res = Infinity;
15+
dfs(root, 0);
16+
return res;
17+
18+
function dfs(node, preLevel) {
19+
if (!node) return;
20+
21+
if (!node.left && !node.right) {
22+
res = Math.min(res, preLevel + 1);
23+
return;
24+
}
25+
26+
dfs(node.left, preLevel + 1);
27+
dfs(node.right, preLevel + 1);
28+
}
29+
};

src/134-gas-station/0730.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* @param {number[]} gas
3+
* @param {number[]} cost
4+
* @return {number}
5+
*/
6+
var canCompleteCircuit = function (gas, cost) {
7+
let res = -1;
8+
const len = gas.length;
9+
10+
for (let i = 0; i < len; i++) {
11+
let count = 0;
12+
let sum = 0;
13+
14+
while (count < len) {
15+
sum += gas[(i + count) % len] - cost[(i + count) % len];
16+
count++;
17+
if (sum < 0) {
18+
break;
19+
}
20+
}
21+
if (sum >= 0) {
22+
return i;
23+
}
24+
}
25+
26+
return res;
27+
};
28+
29+
console.log(canCompleteCircuit([1, 2, 3, 4, 5], [3, 4, 5, 1, 2]));
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* function TreeNode(val) {
4+
* this.val = val;
5+
* this.left = this.right = null;
6+
* }
7+
*/
8+
/**
9+
* @param {TreeNode} root
10+
* @return {number[]}
11+
*/
12+
var rightSideView = function (root) {
13+
const res = [];
14+
dfs(root, 0);
15+
return res;
16+
17+
function dfs(node, level) {
18+
if (!node) return;
19+
20+
res[level] = node.val;
21+
dfs(node.left, level + 1);
22+
dfs(node.right, level + 1);
23+
}
24+
};

src/337-house-robber-iii/index.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
// HELP:
22

3-
export const rob = root => {
3+
var rob = (root) => {
44
const money = dfs(root);
55
return Math.max(money[0], money[1]);
6-
};
76

8-
function dfs(root) {
9-
if (!root) return [0, 0];
10-
const L = dfs(root.left);
11-
const R = dfs(root.right);
12-
return [Math.max(L[0], L[1]) + Math.max(R[0], R[1]), root.val + L[0] + R[0]];
13-
}
7+
function dfs(root) {
8+
if (!root) return [0, 0];
9+
const L = dfs(root.left);
10+
const R = dfs(root.right);
11+
return [Math.max(L[0], L[1]) + Math.max(R[0], R[1]), root.val + L[0] + R[0]];
12+
}
13+
};

src/392-is-subsequence/0730.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* @param {string} s
3+
* @param {string} t
4+
* @return {boolean}
5+
*/
6+
var isSubsequence = function (s, t) {
7+
let start = 0;
8+
for (let char of s) {
9+
let flag = false;
10+
for (let i = start; i < t.length; i++) {
11+
if (char === t[i]) {
12+
start = i + 1;
13+
flag = true;
14+
break;
15+
}
16+
}
17+
18+
if (!flag) return false;
19+
}
20+
21+
return true;
22+
};
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// HELP:
2+
[1, 4, 6, 7];
3+
4+
const findSubsequences = function (nums) {
5+
let res = [];
6+
dfs(nums, []);
7+
return res;
8+
9+
function dfs(arr, pre) {
10+
if (arr.length === 0) {
11+
if (pre.length >= 2) {
12+
res.push(pre);
13+
}
14+
15+
return;
16+
}
17+
let i = 1;
18+
while (i < arr.length && arr[i] === arr[i - 1]) {
19+
i++;
20+
}
21+
dfs(arr.slice(i), pre);
22+
23+
if (arr[0] >= pre[pre.length - 1] || pre.length === 0) {
24+
dfs(arr.slice(1), [...pre, arr[0]]);
25+
}
26+
}
27+
};
28+
29+
console.log(findSubsequences([4, 6, 7, 7]));

src/494-target-sum/index.js

Lines changed: 22 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,22 @@
1-
// export const findTargetSumWays = (nums: number[], target: number): any => {
2-
// if (nums.length === 1) {
3-
// if (nums[0] === 0 && target === 0) return 2
4-
// if (nums[0] === Math.abs(target)) return 1
5-
// return 0
6-
// }
7-
8-
// return (
9-
// findTargetSumWays(
10-
// nums.slice(0, nums.length - 1),
11-
// target + nums[nums.length - 1],
12-
// ) +
13-
// findTargetSumWays(
14-
// nums.slice(0, nums.length - 1),
15-
// target - nums[nums.length - 1],
16-
// )
17-
// )
18-
// }
19-
20-
// HELP:
21-
22-
export const findTargetSumWays = (nums, S) => {
23-
let sum = 0;
24-
for (let i = 0; i < nums.length; i++) {
25-
sum += nums[i];
26-
}
27-
28-
if (sum < S || (sum + S) % 2 !== 0) {
29-
return 0;
30-
}
31-
32-
const target = (S + sum) / 2;
33-
const dp = [];
34-
for (let i = 0; i <= target; i++) {
35-
dp[i] = 0;
36-
}
37-
dp[0] = 1;
38-
for (let i = 0; i < nums.length; i++) {
39-
for (let j = target; j >= nums[i]; j--) {
40-
dp[j] += dp[j - nums[i]];
41-
}
42-
}
43-
return dp[target];
44-
};
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} target
4+
* @return {number}
5+
*/
6+
var findTargetSumWays = function (nums, target) {
7+
let res = 0;
8+
dfs(0, 0);
9+
return res;
10+
11+
function dfs(preSum, index) {
12+
if (index === nums.length) {
13+
if (preSum === target) {
14+
res++;
15+
}
16+
return;
17+
}
18+
19+
dfs(preSum - nums[index], index + 1);
20+
dfs(preSum + nums[index], index + 1);
21+
}
22+
};
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* function TreeNode(val, left, right) {
4+
* this.val = (val===undefined ? 0 : val)
5+
* this.left = (left===undefined ? null : left)
6+
* this.right = (right===undefined ? null : right)
7+
* }
8+
*/
9+
/**
10+
* @param {TreeNode} root
11+
* @return {number}
12+
*/
13+
var findBottomLeftValue = function (root) {
14+
const res = [];
15+
dfs(root, 0);
16+
return res[res.length - 1];
17+
18+
function dfs(node, level) {
19+
if (!node) return;
20+
21+
if (res[level] === undefined) {
22+
res[level] = node.val;
23+
}
24+
25+
dfs(node.left, level + 1);
26+
dfs(node.right, level + 1);
27+
}
28+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const largestValues = (root) => {
2+
const res = [];
3+
dfs(root, 0);
4+
return res;
5+
6+
function dfs(node, level) {
7+
if (!node) return;
8+
res[level] = res[level] === undefined ? node.val : Math.max(res[level], node.val);
9+
dfs(node.left, level + 1);
10+
dfs(node.right, level + 1);
11+
}
12+
};

0 commit comments

Comments
 (0)