Skip to content

Commit 040ceeb

Browse files
authored
Merge pull request #1689 from hyer0705/main
2 parents dfd91de + 34ab358 commit 040ceeb

File tree

5 files changed

+101
-0
lines changed

5 files changed

+101
-0
lines changed

contains-duplicate/hyer0705.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
function containsDuplicate(nums: number[]): boolean {
2+
return new Set<number>(nums).size !== nums.length;
3+
}

house-robber/hyer0705.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// 0ms
2+
function rob(nums: number[]): number {
3+
const n = nums.length;
4+
5+
if (n === 1) return nums[0];
6+
if (n === 2) return Math.max(nums[0], nums[1]);
7+
8+
const dp: number[] = Array(n).fill(0);
9+
dp[0] = nums[0];
10+
dp[1] = Math.max(nums[0], nums[1]);
11+
12+
for (let i = 2; i < n; i++) {
13+
dp[i] = Math.max(dp[i - 2] + nums[i], dp[i - 1]);
14+
}
15+
16+
return dp[n - 1];
17+
}
18+
19+
// 1ms
20+
/*
21+
function rob(nums: number[]): number {
22+
const n = nums.length;
23+
24+
const dp: number[][] = Array.from({ length: n }, () => Array(2).fill(0));
25+
26+
dp[0][1] = nums[0];
27+
28+
for (let i = 1; i < n; i++) {
29+
dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1]);
30+
dp[i][1] = dp[i - 1][0] + nums[i];
31+
}
32+
33+
return Math.max(...dp[n - 1]);
34+
}
35+
*/
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
function longestConsecutive(nums: number[]): number {
2+
if (nums.length === 0) return 0;
3+
4+
const numSet = new Set<number>(nums);
5+
let longest = 0;
6+
7+
for (const num of numSet) {
8+
if (!numSet.has(num - 1)) {
9+
let currentNum = num;
10+
let sequenceLength = 1;
11+
12+
while (numSet.has(currentNum + 1)) {
13+
currentNum++;
14+
sequenceLength++;
15+
}
16+
17+
longest = Math.max(longest, sequenceLength);
18+
}
19+
}
20+
21+
return longest;
22+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
function topKFrequent(nums: number[], k: number): number[] {
2+
nums.sort((a, b) => a - b);
3+
4+
const countMap = new Map<number, number>();
5+
6+
let pointer = 0;
7+
while (pointer < nums.length) {
8+
const currentNumber = nums[pointer];
9+
let count = 0;
10+
11+
while (nums[pointer] === currentNumber) {
12+
pointer++;
13+
count++;
14+
}
15+
16+
countMap.set(currentNumber, count);
17+
}
18+
19+
const result = Array.from(countMap)
20+
.sort((a, b) => b[1] - a[1])
21+
.slice(0, k)
22+
.map((value) => value[0]);
23+
24+
return result;
25+
}

two-sum/hyer0705.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
function twoSum(nums: number[], target: number): number[] {
2+
const numsLen = nums.length;
3+
const result: number[] = [];
4+
5+
for (let i = 0; i < numsLen - 1; i++) {
6+
for (let j = i + 1; j < numsLen; j++) {
7+
if (nums[i] + nums[j] === target) {
8+
result.push(i);
9+
result.push(j);
10+
break;
11+
}
12+
}
13+
}
14+
15+
return result;
16+
}

0 commit comments

Comments
 (0)