Skip to content

Commit 3c6ad8e

Browse files
authored
Merge pull request #1987 from prgmr99/main
2 parents 7ccab91 + f523c84 commit 3c6ad8e

File tree

5 files changed

+115
-0
lines changed

5 files changed

+115
-0
lines changed

contains-duplicate/prgmr99.js

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

house-robber/prgmr99.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var rob = function (nums) {
6+
let maxMoneyAtPrevHouse = 0;
7+
let maxMoneyAtTwoHousesBack = 0;
8+
9+
for (let i = 0; i < nums.length; i++) {
10+
let currentMax = Math.max(
11+
nums[i] + maxMoneyAtTwoHousesBack,
12+
maxMoneyAtPrevHouse
13+
);
14+
15+
maxMoneyAtTwoHousesBack = maxMoneyAtPrevHouse;
16+
maxMoneyAtPrevHouse = currentMax;
17+
}
18+
19+
return maxMoneyAtPrevHouse;
20+
};
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var longestConsecutive = function (nums) {
6+
let result = 1;
7+
let maxLength = 1;
8+
9+
if (nums.length === 0) return 0;
10+
11+
const sortedNums = nums.sort((a, b) => a - b);
12+
13+
for (let i = 1; i < sortedNums.length; i++) {
14+
const prevNum = sortedNums[i - 1];
15+
const currentNum = sortedNums[i];
16+
17+
const diff = currentNum - prevNum;
18+
19+
if (diff === 1) {
20+
result += 1;
21+
22+
if (maxLength < result) {
23+
maxLength = result;
24+
}
25+
} else if (diff === 0) {
26+
continue;
27+
} else {
28+
result = 1;
29+
}
30+
}
31+
32+
return maxLength;
33+
};

top-k-frequent-elements/prgmr99.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} k
4+
* @return {number[]}
5+
*/
6+
var topKFrequent = function (nums, k) {
7+
const result = [];
8+
const numMap = new Map();
9+
10+
for (let i = 0; i < nums.length; i++) {
11+
const currentValue = numMap.get(nums[i]);
12+
13+
if (currentValue) {
14+
numMap.set(nums[i], currentValue + 1);
15+
} else {
16+
numMap.set(nums[i], 1);
17+
}
18+
}
19+
20+
const mapToArr = [...numMap.entries()];
21+
22+
mapToArr.sort((a, b) => {
23+
if (a[1] < b[1]) return 1;
24+
if (a[1] > b[1]) return -1;
25+
return 0;
26+
});
27+
28+
for (let i = 0; i < k; i++) {
29+
result.push(mapToArr[i][0]);
30+
}
31+
32+
return result;
33+
};

two-sum/prgmr99.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+
* @param {number} target
4+
* @return {number[]}
5+
*/
6+
var twoSum = function (nums, target) {
7+
const numMap = new Map();
8+
9+
for (let i = 0; i < nums.length; i++) {
10+
const firstNum = nums[i];
11+
const secondNum = target - nums[i];
12+
13+
if (numMap.has(secondNum)) {
14+
return [numMap.get(secondNum), i];
15+
}
16+
17+
numMap.set(firstNum, i);
18+
}
19+
};

0 commit comments

Comments
 (0)