Skip to content

Commit 398ab75

Browse files
committed
leetcode
1 parent 6365338 commit 398ab75

File tree

41 files changed

+83
-165
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+83
-165
lines changed

README.md

Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,44 @@
33
| ID | Name | Difficulty | Tags | Remarks |
44
| :---: | :--- | :---: | :---: | :--- |
55
| 0001 | [twoSum](./code/0001_twoSum/) || Array, Hash Table | |
6-
| 0002 | [addTwoNumbers](./code/0002_addTwoNumbers.js) | ✦✦ | Math. linked List | |
7-
| 0003 | [lengthOfLongestSubstring](./code/0003_lengthOfLongestSubstring.js) | ✦✦ | Hash Table, Two Pointers, Sliding Window | |
8-
| 0007 | [reverse](./code/0007_reverse.js) || Math | |
9-
| 0009 | [isPalindrome](./code/0009_isPalindrome.js) || Math | |
10-
| 0012 | [intToRoman](./code/0012_intToRoman.js) | ✦✦ | Math, String | |
11-
| 0013 | [romanToInt](./code/0013_romanToInt.js) || Math, String | |
12-
| 0015 | [threeSum](./code/0015_threeSum.js) | ✦✦ | Two Pointers, Array | |
13-
| 0020 | [isValid](./code/0020_isValid.js) || Stack, String | |
14-
| 0026 | [removeDuplicates](./code/0026_removeDuplicates.js) || Two Pointers, Array | |
15-
| 0027 | [removeElement](./code/0027_removeElement.js) || Two Pointers, Array | |
16-
| 0028 | [strStr](./code/0028_strStr.js) || Two Pointers, String | |
17-
| 0030 | [findSubstring](./code/0030_findSubstring.js) | ✦✦✦ | Hash Table, Two Pointers, String | |
18-
| 0031 | [nextPermutation](./code/0031_nextPermutation.js) | ✦✦ | Array | |
19-
| 0034 | [searchRange](./code/0034_searchRange.js) | ✦✦ | Array, Binary Search | |
20-
| 0035 | [searchInsert](./code/0035_searchInsert.js) || Array, Binary Search | |
21-
| 0070 | [climbStairs](./code/0070_climbStairs.js) || DP | |
22-
| 0074 | [searchMatrix](./code/0074_searchMatrix.js) | ✦✦ | Binary Search | |
23-
| 0088 | [merge](./code/0088_merge.js) || Array, Two Pointers | |
24-
| 0118 | [generate](./code/0118_generate.js) || Array | |
25-
| 0121 | [maxProfit](./code/0121_maxProfit.js) || Array, DP | |
26-
| 0122 | [maxProfit](./code/0122_maxProfit.js) || Greedy, Array | |
27-
| 0134 | [canCompleteCircuit](./code/0134_canCompleteCircuit.js) | ✦✦ | Greedy | |
28-
| 0136 | [singleNumber](./code/0136_singleNumber.js) || Hash Table | |
29-
| 0204 | [countPrimes](./code/0204_countPrimes/) || Hash Table | |
30-
| 0222 | [countNodes](./code/0222_countNodes.js) | ✦✦ | Tree, Binary Search | |
31-
| 0239 | [maxSlidingWindow](./code/0239_maxSlidingWindow.js) | ✦✦✦ | Sliding Window | |
32-
| 0297 | [serialize](./code/0297_serialize.js) | ✦✦✦ | Tree | |
33-
| 0283 | [moveZeroes](./code/0283_moveZeroes.js) || Array, Two Pointers | |
34-
| 0328 | [oddEvenList](./code/0328_oddEvenList.js) | ✦✦ | Linked List | |
35-
| 0347 | [topKFrequent](./code/0347_topKFrequent.js) | ✦✦ | Hash Table, Heap | |
36-
| 0402 | [removeKdigits](./code/0402_removeKdigits.js) | ✦✦ | Stack, Greedy | |
37-
| 0406 | [reconstructQueue](./code/0406_reconstructQueue.js) | ✦✦ | Greedy | |
38-
| 0447 | [numberOfBoomerangs](./code/0447_numberOfBoomerangs.js) | ✦✦ | Hash Table, Math | |
39-
| 0513 | [findBottomLeftValue](./code/0513_findBottomLeftValue.js) | ✦✦ | DFS, BFS, Tree | |
40-
| 0514 | [findRotateSteps](./code/0514_findRotateSteps.js) | ✦✦✦ | DFS, DP | |
41-
| 0922 | [sortArrayByParityII](./code/0922_sortArrayByParityII.js) || Array, Sort | |
42-
| 0942 | [validMountainArray](./code/0942_validMountainArray.js) || Math | |
43-
| 0987 | [verticalTraversal](./code/0987_verticalTraversal.js) | ✦✦ | Tree, Hash Table | |
44-
| 1122 | [relativeSortArray](./code/1122_relativeSortArray.js) || Array, Sort | |
45-
| 1370 | [sortString](./code/1370_sortString.js) || Sort | |
6+
| 0002 | [addTwoNumbers](./code/0002_addTwoNumbers) | ✦✦ | Math. linked List | |
7+
| 0003 | [lengthOfLongestSubstring](./code/0003_lengthOfLongestSubstring) | ✦✦ | Hash Table, Two Pointers, Sliding Window | |
8+
| 0007 | [reverse](./code/0007_reverse) || Math | |
9+
| 0009 | [isPalindrome](./code/0009_isPalindrome) || Math | |
10+
| 0012 | [intToRoman](./code/0012_intToRoman) | ✦✦ | Math, String | |
11+
| 0013 | [romanToInt](./code/0013_romanToInt) || Math, String | |
12+
| 0015 | [threeSum](./code/0015_threeSum) | ✦✦ | Two Pointers, Array | |
13+
| 0020 | [isValid](./code/0020_isValid) || Stack, String | |
14+
| 0026 | [removeDuplicates](./code/0026_removeDuplicates) || Two Pointers, Array | |
15+
| 0027 | [removeElement](./code/0027_removeElement) || Two Pointers, Array | |
16+
| 0028 | [strStr](./code/0028_strStr) || Two Pointers, String | |
17+
| 0030 | [findSubstring](./code/0030_findSubstring) | ✦✦✦ | Hash Table, Two Pointers, String | |
18+
| 0031 | [nextPermutation](./code/0031_nextPermutation) | ✦✦ | Array | |
19+
| 0034 | [searchRange](./code/0034_searchRange) | ✦✦ | Array, Binary Search | |
20+
| 0035 | [searchInsert](./code/0035_searchInsert) || Array, Binary Search | |
21+
| 0070 | [climbStairs](./code/0070_climbStairs) || DP | |
22+
| 0074 | [searchMatrix](./code/0074_searchMatrix) | ✦✦ | Binary Search | |
23+
| 0088 | [merge](./code/0088_merge) || Array, Two Pointers | |
24+
| 0118 | [generate](./code/0118_generate) || Array | |
25+
| 0121 | [maxProfit](./code/0121_maxProfit) || Array, DP | |
26+
| 0122 | [maxProfit](./code/0122_maxProfit) || Greedy, Array | |
27+
| 0134 | [canCompleteCircuit](./code/0134_canCompleteCircuit) | ✦✦ | Greedy | |
28+
| 0136 | [singleNumber](./code/0136_singleNumber) || Hash Table | |
29+
| 0204 | [countPrimes](./code/0204_countPrimes) || Hash Table | |
30+
| 0206 | [reverseList](./code/0206_reverseList) || Linked List | |
31+
| 0222 | [countNodes](./code/0222_countNodes) | ✦✦ | Tree, Binary Search | |
32+
| 0239 | [maxSlidingWindow](./code/0239_maxSlidingWindow) | ✦✦✦ | Sliding Window | |
33+
| 0297 | [serialize](./code/0297_serialize) | ✦✦✦ | Tree | |
34+
| 0283 | [moveZeroes](./code/0283_moveZeroes) || Array, Two Pointers | |
35+
| 0328 | [oddEvenList](./code/0328_oddEvenList) | ✦✦ | Linked List | |
36+
| 0347 | [topKFrequent](./code/0347_topKFrequent) | ✦✦ | Hash Table, Heap | |
37+
| 0402 | [removeKdigits](./code/0402_removeKdigits) | ✦✦ | Stack, Greedy | |
38+
| 0406 | [reconstructQueue](./code/0406_reconstructQueue) | ✦✦ | Greedy | |
39+
| 0447 | [numberOfBoomerangs](./code/0447_numberOfBoomerangs) | ✦✦ | Hash Table, Math | |
40+
| 0513 | [findBottomLeftValue](./code/0513_findBottomLeftValue) | ✦✦ | DFS, BFS, Tree | |
41+
| 0514 | [findRotateSteps](./code/0514_findRotateSteps) | ✦✦✦ | DFS, DP | |
42+
| 0922 | [sortArrayByParityII](./code/0922_sortArrayByParityII) || Array, Sort | |
43+
| 0942 | [validMountainArray](./code/0942_validMountainArray) || Math | |
44+
| 0987 | [verticalTraversal](./code/0987_verticalTraversal) | ✦✦ | Tree, Hash Table | |
45+
| 1122 | [relativeSortArray](./code/1122_relativeSortArray) || Array, Sort | |
46+
| 1370 | [sortString](./code/1370_sortString) || Sort | |

code/0002_addTwoNumbers.js renamed to code/0002_addTwoNumbers/0002_addTwoNumbers.js

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,6 @@
1010
* @param {ListNode} l2
1111
* @return {ListNode}
1212
*/
13-
14-
function ListNode(val, next) {
15-
this.val = (val === undefined ? 0 : val)
16-
this.next = (next === undefined ? null : next)
17-
}
18-
19-
const l1 = new ListNode(2, null);
20-
l1.next = new ListNode(4, null);
21-
l1.next.next = new ListNode(3, null);
22-
const l2 = new ListNode(5, null);
23-
l2.next = new ListNode(6, null);
24-
l2.next.next = new ListNode(4, null);
25-
2613
var addTwoNumbers = function (l1, l2) {
2714
let resNode = new ListNode(0, null);
2815
let current = resNode;
@@ -38,5 +25,4 @@ var addTwoNumbers = function (l1, l2) {
3825
l2 = l2 ? l2.next : null;
3926
}
4027
return resNode.next;
41-
};
42-
console.log(addTwoNumbers(l1, l2));
28+
};

code/0003_lengthOfLongestSubstring.js renamed to code/0003_lengthOfLongestSubstring/0003_lengthOfLongestSubstring.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
* @param {string} s
33
* @return {number}
44
*/
5-
6-
const s = "abcabcbb";
7-
85
var lengthOfLongestSubstring = function (s) {
96
let ans = 0;
107
for (let i = 0; i < s.length; i++) {
@@ -23,6 +20,4 @@ var lengthOfLongestSubstring = function (s) {
2320
}
2421
}
2522
return ans;
26-
};
27-
28-
console.log(lengthOfLongestSubstring(s));
23+
};
File renamed without changes.
File renamed without changes.
File renamed without changes.

code/0015_threeSum.js renamed to code/0015_threeSum/0015_threeSum.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
* @param {number[]} nums
33
* @return {number[][]}
44
*/
5-
6-
const nums = [-1, 0, 1, 1, 2, 2, -1, -4];
7-
85
var threeSum = function (nums) {
96
let res = [];
107
// 数组长度小于3直接返回
@@ -41,6 +38,4 @@ var threeSum = function (nums) {
4138
}
4239
}
4340
return res;
44-
};
45-
46-
console.log(threeSum(nums));
41+
};
File renamed without changes.

code/0026_removeDuplicates.js renamed to code/0026_removeDuplicates/0026_removeDuplicates.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
* @param {number[]} nums
33
* @return {number}
44
*/
5-
6-
const nums = [0, 0, 1, 1, 1, 2, 2, 3, 3, 4];
7-
85
var removeDuplicates = function (nums) {
96
if (nums.length === 0) {
107
return [];
@@ -32,6 +29,4 @@ var removeDuplicates = function (nums) {
3229
len--;
3330
}
3431
return nums;
35-
};
36-
37-
console.log(removeDuplicates(nums));
32+
};
File renamed without changes.

code/0034_searchRange.js renamed to code/0034_searchRange/0034_searchRange.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@
33
* @param {number} target
44
* @return {number[]}
55
*/
6-
7-
// const nums = [1, 2, 2, 2, 4, 5, 6, 7, 8], target = 0;
8-
const nums = [0, 0, 0, 1, 2, 3], target = 0;
9-
106
var searchRange = function (nums, target) {
117
let ans = [-1, -1]
128
if (nums.length === 0) {
@@ -39,5 +35,4 @@ var searchRange = function (nums, target) {
3935
}
4036
}
4137
return ans;
42-
};
43-
console.log(searchRange(nums, target));
38+
};

code/0035_searchInsert.js renamed to code/0035_searchInsert/0035_searchInsert.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
* @param {number} target
44
* @return {number}
55
*/
6-
7-
const nums = [1, 3, 5, 6, 7, 8], target = 0;
8-
96
var searchInsert = function (nums, target) {
107
// 定义指,l指向最左端,r指向最右端
118
let l = 0, r = nums.length - 1, ans = nums.length;
@@ -21,6 +18,4 @@ var searchInsert = function (nums, target) {
2118
}
2219
}
2320
return ans;
24-
};
25-
26-
console.log(searchInsert(nums, target));
21+
};
File renamed without changes.

code/0074_searchMatrix.js renamed to code/0074_searchMatrix/0074_searchMatrix.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@
33
* @param {number} target
44
* @return {boolean}
55
*/
6-
7-
// const matrix = [[1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]], target = 3;
8-
const matrix = [[1,3],[5,8],[13,17],[28,45],[67,78]], target = 3;
9-
106
var searchMatrix = function (matrix, target) {
117
if (matrix.length === 0) {
128
return false;
@@ -39,6 +35,4 @@ var searchMatrix = function (matrix, target) {
3935
}
4036
}
4137
return false;
42-
};
43-
44-
console.log(searchMatrix(matrix, target));
38+
};

code/0088_merge.js renamed to code/0088_merge/0088_merge.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
* @param {number} n
66
* @return {void} Do not return anything, modify nums1 in-place instead.
77
*/
8-
const nums1 = [0], nums2 = [1], m = 0, n = 1;
98
var merge = function (nums1, m, nums2, n) {
109
let len1 = m - 1;
1110
let len2 = n - 1;
@@ -26,5 +25,4 @@ var merge = function (nums1, m, nums2, n) {
2625
nums1 = nums2.slice(0, n).concat(nums1.slice(n));
2726
}
2827
return nums1;
29-
};
30-
console.log(merge(nums1, m, nums2, n));
28+
};
File renamed without changes.
File renamed without changes.
File renamed without changes.

code/0134_canCompleteCircuit.js renamed to code/0134_canCompleteCircuit/0134_canCompleteCircuit.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
* @param {number[]} cost
44
* @return {number}
55
*/
6-
// const gas = [1, 2, 3, 4, 5], cost = [3, 4, 5, 1, 2];
7-
const gas = [2, 3, 4], cost = [3, 4, 3];
86
var canCompleteCircuit = function (gas, cost) {
97
let len = gas.length;
108
let i = 0;
@@ -27,5 +25,4 @@ var canCompleteCircuit = function (gas, cost) {
2725
}
2826
}
2927
return -1;
30-
};
31-
console.log(canCompleteCircuit(gas, cost));
28+
};

code/0136_singleNumber.js renamed to code/0136_singleNumber/0136_singleNumber.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22
* @param {number[]} nums
33
* @return {number}
44
*/
5-
let nums = [4, 1, 2, 1, 2];
65
var singleNumber = function (nums) {
76
let res = 0;
87
for(const a of nums) {
98
res ^= a;
109
}
1110
return res;
12-
};
13-
console.log(singleNumber(nums));
11+
};

code/0206_reverseList/iteration.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* function ListNode(val) {
4+
* this.val = val;
5+
* this.next = null;
6+
* }
7+
*/
8+
/**
9+
* @param {ListNode} head
10+
* @return {ListNode}
11+
*/
12+
var reverseList = function (head) {
13+
let cur = head;
14+
let pre = null;
15+
while (cur) {
16+
const next = cur.next;
17+
cur.next = pre;
18+
pre = cur;
19+
cur = next;
20+
}
21+
return pre;
22+
};

code/0222_countNodes.js renamed to code/0222_countNodes/0222_countNodes.js

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,6 @@
99
* @param {TreeNode} root
1010
* @return {number}
1111
*/
12-
13-
function TreeNode(val, left, right) {
14-
this.val = val;
15-
this.left = left;
16-
this.right = right;
17-
}
18-
19-
let root = new TreeNode(1, null, null);
20-
root.left = new TreeNode(2, null, null);
21-
root.right = new TreeNode(3, null, null);
22-
root.left.left = new TreeNode(4, null, null);
23-
root.left.right = new TreeNode(5, null, null);
24-
root.right.left = new TreeNode(6, null, null);
25-
2612
var countNodes = function (root) {
2713
let ans = 0;
2814
if (root === null) {
@@ -42,6 +28,4 @@ var countNodes = function (root) {
4228
}
4329
}
4430
return ans;
45-
};
46-
47-
console.log(countNodes(root));
31+
};

code/0239_maxSlidingWindow.js renamed to code/0239_maxSlidingWindow/0239_maxSlidingWindow.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@
33
* @param {number} k
44
* @return {number[]}
55
*/
6-
7-
// const nums = [1, 3, -1, -3, 5, 3, 6, 7], k = 3;
8-
const nums = [1, 2, 4, 5, -6, 3, -9, 6, -4, 6, 1, -3], k = 3;
9-
106
var maxSlidingWindow = function (nums, k) {
117
let ans = [];
128
if (nums.length === 0) {
@@ -27,6 +23,4 @@ var maxSlidingWindow = function (nums, k) {
2723
}
2824
}
2925
return ans;
30-
};
31-
32-
console.log(maxSlidingWindow(nums, k));
26+
};

code/0283_moveZeroes.js renamed to code/0283_moveZeroes/0283_moveZeroes.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
* @param {number[]} nums
33
* @return {void} Do not return anything, modify nums in-place instead.
44
*/
5-
6-
const nums = [0, 1, 0, 3, 12];
7-
85
var moveZeroes = function (nums) {
96
// 双指针,遇到非0值进行位置交换
107
for (let i = 0; i < nums.length; i++) {
@@ -21,6 +18,4 @@ var moveZeroes = function (nums) {
2118
}
2219
}
2320
return nums;
24-
};
25-
26-
console.log(moveZeroes(nums));
21+
};
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)