Skip to content

Commit 293da73

Browse files
authored
Merge pull request #1168 from hsskey/main
[hsskey] WEEK 1 solutions
2 parents ded985a + c720466 commit 293da73

File tree

5 files changed

+88
-0
lines changed

5 files changed

+88
-0
lines changed

contains-duplicate/hsskey.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {boolean}
4+
*/
5+
var containsDuplicate = function(nums) {
6+
return nums.length !== new Set([...nums]).size
7+
};

house-robber/hsskey.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var rob = function(nums) {
6+
if (nums.length === 0) return 0;
7+
if (nums.length === 1) return nums[0];
8+
9+
const dp = new Array(nums.length);
10+
11+
dp[0] = nums[0];
12+
dp[1] = Math.max(nums[0], nums[1]);
13+
14+
for (let i = 2; i < nums.length; i++) {
15+
dp[i] = Math.max(nums[i] + dp[i - 2], dp[i - 1]);
16+
}
17+
18+
return dp[nums.length - 1];
19+
};
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var longestConsecutive = function(nums) {
6+
const numSet = new Set(nums);
7+
let maxLength = 0;
8+
9+
for (const num of nums) {
10+
if (!numSet.has(num - 1)) {
11+
let currentNum = num;
12+
let currentLength = 1;
13+
14+
while (numSet.has(currentNum + 1)) {
15+
currentNum++;
16+
currentLength++;
17+
}
18+
maxLength = Math.max(maxLength, currentLength);
19+
}
20+
}
21+
22+
return maxLength;
23+
};

top-k-frequent-elements/hsskey.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} k
4+
* @return {number[]}
5+
*/
6+
var topKFrequent = function(nums, k) {
7+
const map = new Map()
8+
9+
for(let i = 0; i < nums.length; i++) {
10+
if(map.has(nums[i])) {
11+
const prevVal = map.get(nums[i])
12+
map.set(nums[i], prevVal + 1)
13+
} else {
14+
map.set(nums[i], 1)
15+
}
16+
}
17+
18+
const result = [...map.entries()].sort((a, b) => b[1] - a[1]).slice(0, k).map((item) => {
19+
return item[0]
20+
})
21+
return result
22+
};

two-sum/hsskey.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} target
4+
* @return {number[]}
5+
*/
6+
var twoSum = function(nums, target) {
7+
const map = new Map()
8+
9+
for(let i = 0; i < nums.length; i++) {
10+
const needNum = target - nums[i]
11+
if(map.has(needNum)) {
12+
return [i, map.get(needNum)]
13+
}
14+
15+
map.set(nums[i], i)
16+
}
17+
};

0 commit comments

Comments
 (0)