Skip to content

Commit 0677e7e

Browse files
committed
Solving some problems on LeetCode: Sort
1 parent 0820521 commit 0677e7e

File tree

3 files changed

+77
-0
lines changed
  • LeetCode

3 files changed

+77
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const getKStrongest = (arr = [], k) => {
2+
if (arr.length === 0) return [];
3+
if (k === 0) return [];
4+
5+
arr.sort((a, b) => a - b);
6+
7+
let median = arr[Math.floor((arr.length - 1) / 2)];
8+
9+
arr.sort((a, b) => Math.abs(a - median) - Math.abs(b - median));
10+
11+
arr.splice(0, arr.length - k);
12+
13+
return arr;
14+
};
15+
16+
console.log(getKStrongest([-7, 22, 17, 3], 2));
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
const insertion = (nums1 = [], nums2 = []) => {
2+
if (nums1.length === 0 || nums2.length === 0) return [];
3+
4+
nums1.sort((a, b) => a - b);
5+
nums2.sort((a, b) => a - b);
6+
7+
let result = [];
8+
let l1 = 0,
9+
l2 = 0;
10+
11+
while (l1 < nums1.length && l2 < nums2.length) {
12+
if (nums1[l1] === nums2[l2]) {
13+
if (!result.includes(nums1[l1])) {
14+
result.push(nums1[l1]);
15+
}
16+
l1++;
17+
l2++;
18+
} else if (nums1[l1] > nums2[l2]) {
19+
l2++;
20+
} else {
21+
l1++;
22+
}
23+
}
24+
25+
return result;
26+
};
27+
28+
console.log(insertion([1, 2, 2, 1], [2, 2]));

LeetCode/56. Merge Intervals/index.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
const merge = (intervals = []) => {
2+
if (intervals.length <= 1) return intervals;
3+
4+
intervals.sort((a = [], b = []) => {
5+
return a[0] - b[0];
6+
});
7+
8+
let result = [[intervals[0][0], intervals[0][1]]];
9+
for (let i = 1; i < intervals.length; i++) {
10+
// overlapped
11+
if (result[result.length - 1][1] >= intervals[i][0]) {
12+
if (result[result.length - 1][1] >= intervals[i][1]) {
13+
continue;
14+
} else {
15+
let tempStart = result[result.length - 1][0];
16+
let tempEnd = intervals[i][1];
17+
result.pop();
18+
result.push([tempStart, tempEnd]);
19+
}
20+
} else {
21+
result.push([intervals[i][0], intervals[i][1]]);
22+
}
23+
}
24+
25+
return result;
26+
};
27+
28+
console.log(
29+
merge([
30+
[1, 3],
31+
[4, 5],
32+
])
33+
);

0 commit comments

Comments
 (0)