Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 74a5c0b

Browse files
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-
exportconstrob = root => {
3+
varrob = (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)

AltStyle によって変換されたページ (->オリジナル) /