Skip to content

Commit b7ee696

Browse files
Problems:2, 7, 14, 67, 69
1 parent e1d6036 commit b7ee696

File tree

5 files changed

+104
-0
lines changed

5 files changed

+104
-0
lines changed

1-99/14.LongestCommonPrefix.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
var longestCommonPrefix = function (strs) {
2+
if (!strs.length) return "";
3+
4+
let prefix = strs[0];
5+
6+
for (let i = 1; i < strs.length; i++) {
7+
while (strs[i].indexOf(prefix) !== 0) {
8+
prefix = prefix.slice(0, -1);
9+
if (prefix === "") return "";
10+
}
11+
}
12+
13+
return prefix;
14+
};

1-99/2.AddTwoNumbers.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
var addTwoNumbers = function (l1, l2) {
2+
const dummyHead = new ListNode();
3+
let carry = 0;
4+
let currentNode = dummyHead;
5+
6+
while (l1 || l2 || carry) {
7+
const sum = (l1?.val || 0) + (l2?.val || 0) + carry;
8+
9+
carry = Math.floor(sum / 10);
10+
11+
currentNode.next = new ListNode(sum % 10);
12+
13+
currentNode = currentNode.next;
14+
15+
l1 = l1?.next;
16+
l2 = l2?.next;
17+
}
18+
19+
return dummyHead.next;
20+
};

1-99/67.AddBinary.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
var addBinary = function (a, b) {
2+
let i = a.length - 1;
3+
let j = b.length - 1;
4+
let carry = 0;
5+
let result = '';
6+
7+
while (i >= 0 || j >= 0 || carry) {
8+
const bitA = i >= 0 ? parseInt(a[i], 10) : 0;
9+
const bitB = j >= 0 ? parseInt(b[j], 10) : 0;
10+
11+
const sum = bitA + bitB + carry;
12+
result = (sum % 2) + result;
13+
carry = Math.floor(sum / 2);
14+
15+
i--;
16+
j--;
17+
}
18+
19+
return result;
20+
};

1-99/69.Sqrt(x).js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
var mySqrt = function (x) {
2+
if (x === 0 || x === 1) return x;
3+
4+
let left = 1,
5+
right = x,
6+
result = 0;
7+
8+
while (left <= right) {
9+
const mid = Math.floor((left + right) / 2);
10+
11+
if (mid * mid === x) {
12+
return mid;
13+
} else if (mid * mid < x) {
14+
result = mid;
15+
left = mid + 1;
16+
} else {
17+
right = mid - 1;
18+
}
19+
}
20+
21+
return result;
22+
};

1-99/7.ReverseInteger.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
var reverse = function (x) {
2+
const INT_MIN = -(2 ** 31);
3+
const INT_MAX = 2 ** 31 - 1;
4+
5+
let result = 0;
6+
7+
while (x !== 0) {
8+
const digit = x % 10;
9+
x = (x / 10) | 0;
10+
11+
if (
12+
result > Math.floor(INT_MAX / 10) ||
13+
(result === Math.floor(INT_MAX / 10) && digit > 7)
14+
) {
15+
return 0;
16+
}
17+
if (
18+
result < Math.ceil(INT_MIN / 10) ||
19+
(result === Math.ceil(INT_MIN / 10) && digit < -8)
20+
) {
21+
return 0;
22+
}
23+
24+
result = result * 10 + digit;
25+
}
26+
27+
return result;
28+
};

0 commit comments

Comments
 (0)