Skip to content

Instantly share code, notes, and snippets.

View dashsaurabh's full-sized avatar

Saurabh Dashora dashsaurabh

View GitHub Profile
@dashsaurabh
dashsaurabh / reverse-only-letters.js
Created January 25, 2020 13:16
Reverse Only Letter in a String
/**
* @param {string} S
* @return {string}
* "ab-cd" should become "dc-ba"
*/
var reverseOnlyLetters = function(S) {
let stack = [];
let resultArr = [];
let letters = /^[A-Za-z]+$/;
@dashsaurabh
dashsaurabh / reverse-individual-words-in-a-string.js
Last active January 25, 2020 02:36
Reverse Individual Words in a String
/**
* @param {string} s
* @return {string}
* "Let's take LeetCode contest" printed as "s'teL ekat edoCteeL tsetnoc"
*/
var reverseWords = function(s) {
let sentence = [];
let word = [];
@dashsaurabh
dashsaurabh / reverse-words-in-a-string.js
Created January 25, 2020 01:41
Reverse Words in a String
/**
* @param {string} s
* @return {string}
* "the sky is blue" should be printed as "blue is sky the"
*/
var reverseWords = function(s) {
let strArray = s.split(' ');
let result = []
let temp;
@dashsaurabh
dashsaurabh / detect-loop-linked-list.js
Created January 20, 2020 12:43
Detect Loop in Linked List
var hasCycle = function(head) {
if (head === null) return false;
if (head.next === null) return false;
let slow = head;
let fast = head.next;
while(fast !== null && fast.next !== null){
@dashsaurabh
dashsaurabh / max-subarray.js
Created January 20, 2020 11:30
Find Max SubArray from an Array
/**
* @param {number[]} nums
* @return {number}
*/
var maxSubArray = function(nums) {
let globalMax = nums[0];
let localMax = nums[0];
for(let i=1;i<nums.length;i++) {
localMax = Math.max(localMax+nums[i], nums[i])
@dashsaurabh
dashsaurabh / remove-element-array-in-place.js
Created January 20, 2020 11:20
Remove All Instances from an Element from an Array in Place and Return Length
/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
var removeElement = function(nums, val) {
let slow=0;
for(let fast = 0; fast < nums.length; fast++) {
@dashsaurabh
dashsaurabh / trapping-rainwater.js
Created January 20, 2020 11:11
Solution for Trapping RainWater Problem
var trap = function(height) {
let left_max = [];
let right_max = [];
let rainWaterUnits = 0;
let n = height.length;
left_max[0] = height[0]
for(let i=1;i<n;i++) {
left_max[i] = Math.max(height[i], left_max[i-1]);
@dashsaurabh
dashsaurabh / longest-substring-without-duplicates-length.js
Created January 19, 2020 11:49
Find the Length of the Longest Substring without Duplicates
var lengthOfLongestSubstring = function(s) {
let visited = {};
let maximum = 0;
let i = 0;
for(let j=0;j<s.length;j++) {
if(visited[s.charAt(j)] !== undefined) {
i = Math.max(i, visited[s.charAt(j)])
}
@dashsaurabh
dashsaurabh / remove-duplicates-from-sorted-array.js
Last active January 19, 2020 09:06
Remove Duplicates From a Sorted Array in Single Pass
var removeDuplicates = function(nums) {
if(nums.length === 0) return 0;
let slow = 0;
for(let fast = 0; fast < nums.length; fast++) {
if(nums[slow] !== nums[fast]){
slow++;
nums[slow] = nums[fast]
@dashsaurabh
dashsaurabh / remove-nth-node-linked-list.js
Created January 18, 2020 11:53
Remove nth or kth node from a singly linked list in single pass
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @param {number} n