Skip to content

Commit ca6a63c

Browse files
authored
Merge pull request #308 from hyejjun/main
[ํ˜œ์ค€] Week1 ๋ฌธ์ œ ํ’€์ด
2 parents 6639ebc + 0120b1c commit ca6a63c

File tree

4 files changed

+93
-0
lines changed

4 files changed

+93
-0
lines changed

โ€Žcontains-duplicate/hyejjun.js

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {boolean}
4+
*/
5+
var containsDuplicate = function (nums) {
6+
7+
const set = new Set(nums);
8+
9+
return nums.length !== set.size ? true : false;
10+
11+
};
12+
13+
14+
console.log(containsDuplicate([1, 2, 3, 1])); // true
15+
console.log(containsDuplicate([1, 2, 3, 4])); // false
16+
console.log(containsDuplicate([1, 1, 1, 3, 3, 4, 3, 2, 4, 2])); // true

โ€Žnumber-of-1-bits/hyejjun.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*/
5+
var hammingWeight = function (n) {
6+
7+
let val = n.toString(2);
8+
9+
let res = 0;
10+
[...val].forEach((val) => res += parseInt(val))
11+
12+
return res;
13+
14+
};
15+
16+
// O(LogN)
17+
18+
console.log(hammingWeight(11));
19+
console.log(hammingWeight(128));
20+
console.log(hammingWeight(2147483645));

โ€Žpalindromic-substrings/hyejjun.js

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* @param {string} s
3+
* @return {number}
4+
*/
5+
var countSubstrings = function (s) {
6+
let count = 0;
7+
8+
function checkPalindromic(left, right) {
9+
while (left >= 0 && right < s.length && s[left] === s[right]) {
10+
count++;
11+
left--;
12+
right++;
13+
}
14+
15+
}
16+
17+
for (let i = 0; i < s.length; i++) {
18+
checkPalindromic(i, i);
19+
checkPalindromic(i, i + 1);
20+
}
21+
22+
return count;
23+
};
24+
25+
console.log(countSubstrings("abc"));
26+
console.log(countSubstrings("aaa"));
27+
28+
29+
/*
30+
Time Complexity : O(n^2)
31+
Space Complexity: O(1)
32+
*/
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} k
4+
* @return {number[]}
5+
*/
6+
var topKFrequent = function (nums, k) {
7+
const count = {};
8+
9+
nums.forEach((num) => {
10+
count[num] = (count[num] || 0) + 1;
11+
});
12+
13+
const filtered = Object.keys(count).sort((a, b) => count[b] - count[a]);
14+
15+
return filtered.slice(0, k).map(Number);
16+
17+
};
18+
19+
console.log(topKFrequent([1, 1, 1, 2, 2, 3], 2)); // [1, 2]
20+
console.log(topKFrequent([1], 1)); // [1]
21+
22+
/*
23+
Time Complexity : O(NLogN)
24+
Space Complexity: O(N)
25+
*/

0 commit comments

Comments
ย (0)