Skip to content

Commit 139b98c

Browse files
committed
💬 add rest
1 parent a33c22a commit 139b98c

10 files changed

+229
-32
lines changed

100.相同的树.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* @lc app=leetcode.cn id=100 lang=javascript
3+
*
4+
* [100] 相同的树
5+
*/
6+
7+
// @lc code=start
8+
/**
9+
* Definition for a binary tree node.
10+
* function TreeNode(val, left, right) {
11+
* this.val = (val===undefined ? 0 : val)
12+
* this.left = (left===undefined ? null : left)
13+
* this.right = (right===undefined ? null : right)
14+
* }
15+
*/
16+
/**
17+
* @param {TreeNode} p
18+
* @param {TreeNode} q
19+
* @return {boolean}
20+
*/
21+
function isSameTree(p, q) {
22+
if (!p && !q) return true;
23+
if (!p || !q || p.val !== q.val) return false;
24+
25+
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
26+
}
27+
// @lc code=end
28+

20.有效的括号.js

Lines changed: 19 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -61,43 +61,30 @@
6161
* @return {boolean}
6262
*/
6363
var isValid = function (s) {
64-
var st = []
65-
// s = '()'
66-
for (var l of s) {
67-
// i = 0,1,2,3,4,5
68-
if ((i = "({[]})".indexOf(l)) > -1) {
69-
if (st[st.length - 1] + i === 5) {
70-
st.length--;
71-
} else {
72-
st.push(i);
64+
65+
let valid = true;
66+
const stack = [];
67+
const mapper = {
68+
'{': "}",
69+
"[": "]",
70+
"(": ")"
71+
}
72+
73+
for(let i in s) {
74+
const v = s[i];
75+
if (['(', '[', '{'].indexOf(v) > -1) {
76+
stack.push(v);
77+
} else {
78+
const peak = stack.pop();
79+
if (v !== mapper[peak]) {
80+
return false;
7381
}
7482
}
7583
}
76-
return st.length === 0
77-
78-
// let valid = true;
79-
// const stack = [];
80-
// const mapper = {
81-
// '{': "}",
82-
// "[": "]",
83-
// "(": ")"
84-
// }
85-
86-
// for(let i in s) {
87-
// const v = s[i];
88-
// if (['(', '[', '{'].indexOf(v) > -1) {
89-
// stack.push(v);
90-
// } else {
91-
// const peak = stack.pop();
92-
// if (v !== mapper[peak]) {
93-
// return false;
94-
// }
95-
// }
96-
// }
9784

98-
// if (stack.length > 0) return false;
85+
if (stack.length > 0) return false;
9986

100-
// return valid;
87+
return valid;
10188
};
10289
// @lc code=end
10390

53.最大子序和.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* @lc app=leetcode.cn id=53 lang=javascript
3+
*
4+
* [53] 最大子序和
5+
*/
6+
7+
// @lc code=start
8+
9+
/**
10+
* @param {number[]} nums
11+
* @return {number}
12+
*/
13+
var maxSubArray = function(nums) {
14+
var prev = 0;
15+
var max = -Number.MAX_VALUE;
16+
17+
for (var i = 0; i < nums.length; i++) {
18+
prev = Math.max(prev + nums[i], nums[i]);
19+
max = Math.max(max, prev);
20+
}
21+
return max;
22+
};
23+
// @lc code=end
24+

58.最后一个单词的长度.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/*
2+
* @lc app=leetcode.cn id=58 lang=javascript
3+
*
4+
* [58] 最后一个单词的长度
5+
*/
6+
7+
// @lc code=start
8+
/**
9+
* @param {string} s
10+
* @return {number}
11+
*/
12+
var lengthOfLastWord = function(s) {
13+
return s.trim().split(" ").pop().length;
14+
};
15+
// @lc code=end
16+

66.加一.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* @lc app=leetcode.cn id=66 lang=javascript
3+
*
4+
* [66] 加一
5+
*/
6+
7+
// @lc code=start
8+
/**
9+
* @param {number[]} digits
10+
* @return {number[]}
11+
*/
12+
// [7,8,9] [7,9,0]
13+
var plusOne = function (digits) {
14+
for (var i = digits.length - 1; i >= 0; i--) {
15+
digits[i]++;
16+
if (digits[i] > 9) {
17+
digits[i] = 0;
18+
} else {
19+
return digits;
20+
}
21+
}
22+
digits.unshift(1);
23+
return digits;
24+
};
25+
// @lc code=end
26+

67.二进制求和.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* @lc app=leetcode.cn id=67 lang=javascript
3+
*
4+
* [67] 二进制求和
5+
*/
6+
7+
// @lc code=start
8+
/**
9+
* @param {string} a
10+
* @param {string} b
11+
* @return {string}
12+
*/
13+
var addBinary = function(a, b) {
14+
const aBin = `0b${a}`
15+
const bBin = `0b${b}`
16+
const sum = BigInt(aBin) + BigInt(bBin)
17+
return sum.toString(2)
18+
};
19+
// @lc code=end
20+

69.x-的平方根.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* @lc app=leetcode.cn id=69 lang=javascript
3+
*
4+
* [69] x 的平方根
5+
*/
6+
7+
// @lc code=start
8+
/**
9+
* @param {number} x
10+
* @return {number}
11+
*/
12+
var mySqrt = function(x) {
13+
var left = 1;
14+
var right = Math.floor(x / 2) + 1;
15+
var mid;
16+
17+
while (left <= right) {
18+
mid = Math.floor((left + right) / 2);
19+
20+
if (mid * mid > x) {
21+
right = mid - 1;
22+
} else if (mid * mid < x) {
23+
left = mid + 1;
24+
} else {
25+
return mid;
26+
}
27+
}
28+
29+
return right;
30+
};
31+
// @lc code=end
32+

70.爬楼梯.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,16 @@
4545
* @return {number}
4646
*/
4747
var climbStairs = function(n) {
48+
let prev = 0;
49+
let cur = 1;
50+
let temp;
4851

52+
for (let i = 0; i < n; i++) {
53+
temp = prev;
54+
prev = cur;
55+
cur += temp;
56+
}
57+
return cur;
4958
};
5059
// @lc code=end
5160

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* @lc app=leetcode.cn id=83 lang=javascript
3+
*
4+
* [83] 删除排序链表中的重复元素
5+
*/
6+
7+
// @lc code=start
8+
/**
9+
* Definition for singly-linked list.
10+
* function ListNode(val) {
11+
* this.val = val;
12+
* this.next = null;
13+
* }
14+
*/
15+
/**
16+
* @param {ListNode} head
17+
* @return {ListNode}
18+
*/
19+
var deleteDuplicates = function(head) {
20+
var current = head
21+
while(current) {
22+
if(current.next !== null && current.val == current.next.val) {
23+
current.next = current.next.next;
24+
} else {
25+
current = current.next;
26+
}
27+
}
28+
29+
return head;
30+
};
31+
// @lc code=end
32+

88.合并两个有序数组.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
* @lc app=leetcode.cn id=88 lang=javascript
3+
*
4+
* [88] 合并两个有序数组
5+
*/
6+
7+
// @lc code=start
8+
/**
9+
* @param {number[]} nums1
10+
* @param {number} m
11+
* @param {number[]} nums2
12+
* @param {number} n
13+
* @return {void} Do not return anything, modify nums1 in-place instead.
14+
*/
15+
var merge = function(nums1, m, nums2, n) {
16+
var insertPos = m + n - 1;
17+
m--; n--;
18+
while (n >= 0) {
19+
nums1[insertPos--] = (nums1[m] > nums2[n]) ? nums1[m--] : nums2[n--];
20+
}
21+
};
22+
// @lc code=end
23+

0 commit comments

Comments
 (0)