Thanks to visit codestin.com
Credit goes to github.com

Skip to content

JavaScript Solutions for 1, 11, 15, 19, 20, 21, 33, 48, 49, 53, 54, 70, 73, 98, 100, 104, 121, 125, 141, 143, 152, 153, 206, 217, 226, 238, 242, 268, 300, 572 #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 32 commits into from
Apr 4, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
6bee7e9
Create 1-Two-Sum.js
veerbia Apr 3, 2022
9d6e4d4
Merge pull request #1 from veer-p/veer-p-javascript-1
veerbia Apr 3, 2022
ae438f7
Create 217-Contains-Duplicate.js
veerbia Apr 3, 2022
aa54a20
Create 242-Valid-Anagram.js
veerbia Apr 3, 2022
b7b5f0f
Create 238-Product-of-Array-Except-Self.js
veerbia Apr 3, 2022
22cee91
Create 125-Valid-Palindrome.js
veerbia Apr 3, 2022
e5040ea
Create 15-3Sum.js
veerbia Apr 3, 2022
6fbdb1c
Create 11-Container-With-Most-Water.js
veerbia Apr 3, 2022
67e33b6
Create 121-Best-Time-to-Buy-and-Sell-Stock.js
veerbia Apr 3, 2022
9c9ea0f
Create 20-Valid-Parentheses.js
veerbia Apr 3, 2022
c95701f
Create 153-Find-Minimum-in-Rotated-Sorted-Array.js
veerbia Apr 3, 2022
62b8933
Create 33-Search-in-Rotated-Sorted-Array.js
veerbia Apr 3, 2022
09aab20
Create 206-Reverse-Linked-List.js
veerbia Apr 3, 2022
cdf8f15
Create 21-Merge-Two-Sorted-Lists.js
veerbia Apr 3, 2022
17b2008
Create 143-Reorder-List.js
veerbia Apr 3, 2022
f1b9f63
Create 19-Remove-Nth-Node-From-End-of-List.js
veerbia Apr 3, 2022
7b85e55
Create 141-Linked-List-Cycle
veerbia Apr 3, 2022
f5b4385
Create 226-Invert-Binary-Tree
veerbia Apr 3, 2022
7164760
Rename 226-Invert-Binary-Tree to 226-Invert-Binary-Tree.js
veerbia Apr 3, 2022
101652d
Rename 141-Linked-List-Cycle to 141-Linked-List-Cycle.js
veerbia Apr 3, 2022
096fad5
Create 104-Maximum-Depth-of-Binary-Tree.js
veerbia Apr 3, 2022
e7dca18
Create 100-Same-Tree.js
veerbia Apr 3, 2022
a4b99e4
Create 572-Subtree-of-Another-Tree.js
veerbia Apr 3, 2022
f2596c5
Create 98-Validate-Binary-Search-Tree.js
veerbia Apr 3, 2022
997071f
Create 70-Climbing-Stairs.js
veerbia Apr 3, 2022
ca671eb
Create 152-Maximum-Product-Subarray.js
veerbia Apr 3, 2022
a6b24ac
Create 300-Longest-Increasing-Subsequence.js
veerbia Apr 3, 2022
b795367
Create 53-Maximum-Subarray.js
veerbia Apr 3, 2022
d1681e1
Create 49-Rotate-Image.js
veerbia Apr 3, 2022
afedaf9
Create 54-Spiral-Matrix.js
veerbia Apr 3, 2022
d025143
Create 73-Set-Matrix-Zeroes.js
veerbia Apr 3, 2022
3a6c767
Create 268-Missing-Number.js
veerbia Apr 3, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions javascript/1-Two-Sum.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
let map = {};
for (let i = 0; i < nums.length; i++) {
if (target - nums[i] in map) {
return [map[target-nums[i]], i];
} else {
map[nums[i]] = i;
}
}
};
18 changes: 18 additions & 0 deletions javascript/100-Same-Tree.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} p
* @param {TreeNode} q
* @return {boolean}
*/
var isSameTree = function(p, q) {
if (!p && !q) return true;
if (!p || !q || p.val !== q.val) return false;
return isSameTree(p.right,q.right) && isSameTree(p.left, q.left);
};
23 changes: 23 additions & 0 deletions javascript/104-Maximum-Depth-of-Binary-Tree.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {number}
*/
var maxDepth = (root) => {
let maxDepth = 0;
let DFS = (node, depth) => {
if (!node) return maxDepth;
if (depth > maxDepth) maxDepth = depth;
DFS(node.right, depth + 1);
DFS(node.left, depth + 1);
}
DFS(root, 1);
return maxDepth;
};
20 changes: 20 additions & 0 deletions javascript/11-Container-With-Most-Water.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* @param {number[]} height
* @return {number}
*/
var maxArea = function(height) {
let max = 0;
let i = 0;
let j = height.length - 1;

while (i < j) {
curr = (j - i) * Math.min(height[i], height[j]);
max = Math.max(curr, max);
if (height[i] > height[j]) {
j--;
} else {
i++;
}
}
return max;
};
16 changes: 16 additions & 0 deletions javascript/121-Best-Time-to-Buy-and-Sell-Stock.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/**
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function(prices) {
let buy = prices[0];
let profit = 0;
for (let i = 0; i < prices.length; i++) {
if (prices[i] < buy) {
buy = prices[i];
} else {
profit = Math.max(prices[i] - buy, profit);
}
}
return profit;
};
19 changes: 19 additions & 0 deletions javascript/125-Valid-Palindrome.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/**
* @param {string} s
* @return {boolean}
*/
var isPalindrome = function(s) {
s = s.toLowerCase();
s = s.replace(/[^A-Z0-9]/gi, '');

let i = 0
let j = s.length - 1;

while (i < j) {
if (s[i] !== s[j]) return false;

i++;
j--
}
return true;
};
25 changes: 25 additions & 0 deletions javascript/141-Linked-List-Cycle.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/

/**
* @param {ListNode} head
* @return {boolean}
*/
var hasCycle = function(head) {
let set = new Set();
while (head) {
if (set.has(head)) {
return true;
} else {
set.add(head);
head = head.next;
}
}

return false;
};
50 changes: 50 additions & 0 deletions javascript/143-Reorder-List.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @return {void} Do not return anything, modify head in-place instead.
*/
var reorderList = function(head) {
if (!head) { return };

let slow = head;
let fast = head;


// finding the middle of the linked list using 2 pters
while (fast && fast.next) {
slow = slow.next;
fast = fast.next.next;
}

// reverse the second part of the list starting at slow
let prev = null
let curr = slow;
while (curr) {
let next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
} // here prev is the head

// merge two sorted lists (first one starts at head, second at prev)
let first = head;
let second = prev;

while(second.next) {
temp = first.next;
first.next = second;
first = temp;

temp = second.next;
second.next = first;
second = temp;
}


};
35 changes: 35 additions & 0 deletions javascript/15-3Sum.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/**
* @param {number[]} nums
* @return {number[][]}
*/
var threeSum = function(nums) {
let res = [];
let left = 0;
let right = nums.length - 1;
nums.sort((a,b) => { return a - b })

for (let i = 0; i < nums.length - 1; i++) {
if (nums[i] > 0) return res;
if (nums[i] === nums[i - 1]) continue;

left = i + 1;
right = nums.length - 1;
let temp = 0;

while (left < right) {
temp = nums[left] + nums[right] + nums[i];
if (temp === 0) {
res.push([nums[i], nums[left], nums[right]]);
left++;
right--;

while(nums[left] == nums[left - 1]) { left++ };

while (nums[right] == nums[right - 1]) { right-- };

} else if (temp > 0) { right-- }
else if (temp < 0) { left++ }
}
}
return res;
};
20 changes: 20 additions & 0 deletions javascript/152-Maximum-Product-Subarray.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* @param {number[]} nums
* @return {number}
*/
var maxProduct = function(nums) {
let result = nums[0];
let prevMax = nums[0];
let prevMin = nums[0];
for(let i = 1; i < nums.length; i++) {
currMax = Math.max(nums[i], prevMax * nums[i], prevMin * nums[i]);
currMin = Math.min(nums[i], prevMax * nums[i], prevMin * nums[i]);

prevMax = currMax;
prevMin = currMin;

result = Math.max(currMax, result);
}
return result;

};
17 changes: 17 additions & 0 deletions javascript/153-Find-Minimum-in-Rotated-Sorted-Array.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/**
* @param {number[]} nums
* @return {number}
*/
var findMin = function(nums) {
let left = 0;
let right = nums.length - 1;
while (right > left) {
let mid = Math.floor((right + left) / 2);
if (nums[mid] > nums[right]) {
left = mid + 1;
} else {
right = mid;
}
}
return nums[left];
};
32 changes: 32 additions & 0 deletions javascript/19-Remove-Nth-Node-From-End-of-List.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @param {number} n
* @return {ListNode}
*/
var removeNthFromEnd = function(head, n) {
let currNode = head;
let nodeBeforeN = head;

for (let i = 0; i < n; i++) {
currNode = currNode.next;
}

if (!currNode) { return head.next }

while (currNode.next) {
nodeBeforeN = nodeBeforeN.next;
currNode = currNode.next;
}

nodeBeforeN.next = nodeBeforeN.next.next;

return head;

};
32 changes: 32 additions & 0 deletions javascript/20-Valid-Parentheses.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {

let closeMap = {
'}' :'{',
')' : '(',
']' : '['
};

let charStack = [];

if (!s) return false;

for (let i = 0; i < s.length; i++) {
let curr = s.charAt(i);
// check if closing bracket
if (closeMap[curr]) {
topElement = (charStack.length === 0) ? '#' : charStack.pop();
if (topElement !== closeMap[curr]) {
return false;
}
// opening bracket case
} else {
charStack.push(curr);
}
}

return charStack.length === 0;
};
23 changes: 23 additions & 0 deletions javascript/206-Reverse-Linked-List.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var reverseList = function(head) {
let prev = null;

while (head) {
let next = head.next;
head.next = prev;
prev = head;
head = next;
}

return prev;
};
28 changes: 28 additions & 0 deletions javascript/21-Merge-Two-Sorted-Lists.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} list1
* @param {ListNode} list2
* @return {ListNode}
*/
var mergeTwoLists = function(l1, l2) {
let nullNode = { val : 0, next : null};
let prev = nullNode;
while (l1 && l2) {
if (l1.val >= l2.val) {
prev.next = l2;
l2 = l2.next;
} else {
prev.next = l1;
l1 = l1.next;
}
prev = prev.next;
}
prev.next = l1 || l2;
return nullNode.next;
};
Loading