Skip to content

Commit f1cdd5e

Browse files
committed
update 3 leetcode
1 parent ea59335 commit f1cdd5e

File tree

3 files changed

+97
-0
lines changed

3 files changed

+97
-0
lines changed

leetcode/1.two-sum.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* @lc app=leetcode id=1 lang=javascript
3+
*
4+
* [1] Two Sum
5+
*/
6+
7+
// @lc code=start
8+
/**
9+
* @param {number[]} nums
10+
* @param {number} target
11+
* @return {number[]}
12+
*/
13+
var twoSum = function(nums, target) {
14+
for (let i = 0; i < nums.length - 1; i++) {
15+
for (let j = i + 1; j < nums.length; j++) {
16+
const ei = nums[i];
17+
const ej = nums[j];
18+
if (ej + ei === target) {
19+
return [i, j]
20+
}
21+
}
22+
}
23+
};
24+
25+
// @lc code=end
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* @lc app=leetcode id=35 lang=javascript
3+
*
4+
* [35] Search Insert Position
5+
*/
6+
7+
// @lc code=start
8+
/**
9+
* @param {number[]} nums
10+
* @param {number} target
11+
* @return {number}
12+
*/
13+
var searchInsert = function(nums, target) {
14+
const len = nums.length;
15+
let left = 0, right = len - 1, ans = len;
16+
// 二分法向中间查找
17+
// 不是两边往中间找,而是不断更新中间值
18+
while (left <= right) {
19+
// 二进制右移一位,等同于对半取整,因为向左一位是乘以 2, 向右一位是除以 2
20+
let mid = ((right - left) >> 1) + left;
21+
if (target <= nums[mid]) {
22+
ans = mid;
23+
right = mid - 1;
24+
} else {
25+
left = mid + 1;
26+
}
27+
}
28+
return ans;
29+
};
30+
searchInsert([1,3,5,6], 2);
31+
// @lc code=end

leetcode/7.reverse-integer.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* @lc app=leetcode id=7 lang=javascript
3+
*
4+
* [7] Reverse Integer
5+
*/
6+
7+
// @lc code=start
8+
/**
9+
* @param {number} x
10+
* @return {number}
11+
*/
12+
var reverse = function(x) {
13+
// 是否是 负数
14+
let f = x < 0;
15+
// 转成字符串,再用数组反序
16+
let newX = +(Math.abs(x).toString().split('').reverse().join(''));
17+
newX = f ? -1 * newX : newX;
18+
if (Math.pow(-2, 31) > newX || (Math.pow(2, 31) - 1) < newX) {
19+
return 0;
20+
}
21+
return newX;
22+
};
23+
24+
/**
25+
* @param {number} x
26+
* @return {number}
27+
*/
28+
var reverseMath = function(x) {
29+
// 数学的方法 每一位相除
30+
let res = 0;
31+
while (x) {
32+
const digit = x % 10;
33+
x = ~~(x / 10);
34+
res = digit + res * 10;
35+
if (Math.pow(-2, 31) > res || (Math.pow(2, 31) - 1) < res) {
36+
return 0;
37+
}
38+
}
39+
return res;
40+
};
41+
// @lc code=end

0 commit comments

Comments
 (0)