Skip to content

Commit 5acf128

Browse files
authored
Merge pull request #675 from Zioq/main
[Zioq] Week 1
2 parents 4c1dd3e + eda2f64 commit 5acf128

File tree

5 files changed

+149
-0
lines changed

5 files changed

+149
-0
lines changed

contains-duplicate/Zioq.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {boolean}
4+
*/
5+
var containsDuplicate = function(nums) {
6+
let dup_set = new Set(nums); // Initialize Set
7+
return dup_set.size !== nums.length
8+
9+
10+
/* Previous Code before the review */
11+
// for (let num of nums) {
12+
// dup_set.add(num) // Add value into the set (duplicated value will be ignored)
13+
// }
14+
15+
// if(dup_set.size !== nums.length) {
16+
// return true
17+
// }
18+
// return false
19+
};
20+
21+
/*
22+
Space Complexity - O(n) - Create a set to store elements
23+
Time Complexity - O(n) - Traverse through the array
24+
*/
25+
26+
27+
/* Test code */
28+
console.log(containsDuplicate([1, 2, 3, 1])); // true
29+
console.log(containsDuplicate([1, 2, 3, 4])); // false
30+
console.log(containsDuplicate([1, 1, 1, 3, 3, 4, 3, 2, 4, 2])); // true
31+
32+

house-robber/Zioq.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var rob = function(nums) {
6+
if( nums.length < 1 ) { return nums[0]}
7+
8+
let prev_2 = nums[0]
9+
let prev_1 = Math.max(nums[0], nums[1]);
10+
11+
for( let i= 2; i <nums.length; i++ ) {
12+
let crr = Math.max(prev_1, nums[i]+ prev_2 );
13+
prev_2 = prev_1;
14+
prev_1 = crr;
15+
}
16+
17+
return prev_1;
18+
};
19+
/*
20+
TC: O(n)
21+
SC: O(1)
22+
*/
23+
24+
25+
/* Test Case */
26+
console.log(rob([1,2,3,1]));
27+
console.log(rob([2,7,9,3,1]));
28+
29+

longest-consecutive-sequence/Zioq.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var longestConsecutive = function(nums) {
6+
if(nums.length === 0) return 0
7+
let set = new Set();
8+
for(const n of nums) {
9+
set.add(n);
10+
}
11+
let max = 0;
12+
for(let n of set) {
13+
if(!set.has(n-1)) {
14+
let count = 0;
15+
while(set.has(n++)) {
16+
count++;
17+
}
18+
max = Math.max(max, count);
19+
}
20+
}
21+
return max;
22+
};
23+
24+
/* Test code */
25+
console.log(longestConsecutive([9,1,4,7,3,-1,0,5,8,-1,6])); // true

top-k-frequent-elements/Zioq.js

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

valid-palindrome/Zioq.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* @param {string} s
3+
* @return {boolean}
4+
*/
5+
var isPalindrome = function(s) {
6+
7+
let text = s.replace(/[^0-9a-z]/gi, '');
8+
text = text.replace(/\s/g, '').toLowerCase();
9+
10+
const str_arr = text.split("");
11+
if( str_arr % 2 === 1 ) {
12+
return false;
13+
}
14+
15+
let length = str_arr.length - 1 ;
16+
for ( const [i, value] of str_arr.entries()) {
17+
if( value == str_arr[length -i] ) continue;
18+
if(value != str_arr[length - i]) {
19+
return false
20+
}
21+
}
22+
return true;
23+
};
24+
25+
/*
26+
Space Complexity - O(n) - Create a array to store elements
27+
Time Complexity - O(n) - Traverse through the array
28+
*/
29+
30+
/* Test code */
31+
console.log(isPalindrome("A man, a plan, a canal: Panama")); // true
32+
console.log(isPalindrome("race a car")); // false
33+
console.log(isPalindrome(" ")); // true

0 commit comments

Comments
 (0)