LeetCode 1249. Minimum Remove to Make Valid Parentheses

Here is my solution to this problem: /** * @param {string} s * @return {string} */ var minRemoveToMakeValid = function(s) { const stack = []; const charArray = s.split(&#34;&#34;); const rightBracketsToRemove = []; for (let i=0;i<charArray.length;i++) { if (charArray[i] === '(') { stack.push(i); } else if (charArray[i] === ')' && stack.length > 0) { stack.pop(); } else if (charArray[i] === ')') { charArray[i] = ''; } } while (stack.length > 0) { const i = stack.

Published on


Leetcode 13: Roman to Integers

Here is my solution to this problem in PHP: private $v = ['M' = > 1000, 'D' = > 500, 'C' = > 100, 'L' = > 50, 'X' = > 10, 'V' = > 5, 'I' = > 1]; /** * @param String $s * @return Integer */ function romanToInt($s) { $n = 0; $last = ''; for ($i=0;$i < strlen ($s ); $i++) { $n += $this- >v[$s[$i]]; if (($s[$i] == 'V' || $s[$i] == 'X') && $last == 'I') { $n = $n - 2; } elseif (($s[$i] == 'L' || $s[$i] == 'C') && $last == 'X') { $n -= 20; } elseif (($s[$i] == 'D' || $s[$i] == 'M') && $last == 'C') { $n -= 200; } $last = $s[$i]; } return $n; } }

Published on


Troubleshooting Kubernetes Ingress

Setting up Ingress is an easy process but when it doesn’t work it gets really painful. First, make sure you have Ingress Controller setup correctly. This is in addition to Ingress resource and should be automatically setup by your cloud provider. When I was trying to setup a Kubernetes cluster on IBM Cloud, I ran into a lot of issues. It seems due to my permissions level something went wrong during provisioning of Kubernetes and Ingress Controller was not setup correctly.

Published on


HackerRank: New Year Chaos

Here is my solution to New Years Chaos problem from HackerRank. The first solution had a bug: <pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-js" data-lang="js">function minimumBribes (q ) { let bribes = 0 ; for (let i = 0 ;i <q .length - 2 ;i++ ) { if (q [i ] - (i + 1 ) > 2 ) { console .log ( 'Too chaotic' ); return ; } // compare index to element, works great except when a smaller element is pushed way back if (q [i ] - (i + 1 ) > 0 ) { bribes += q [i ] - (i + 1 ); } } console .

Published on


LeetCode 200: Number of Islands

I had to watch some YouTube videos for the solution to this problem. I am not sure if this is the best solution though, one day I will revisit it. /** * @param String[][] $grid * @return Integer */ function numIslands($grid) { $count = 0; for ($i=0; $i < count ($grid ); $i++) { for ($j = 0; $j <count ($grid [$i ]); $j++) { if ($grid [$i ][$j ] == &#34;1 &#34;) { $count++; // zero out rest of 1s $this- >zeroOut($grid, $i, $j); } } } return $count; } function zeroOut( & $grid, $i, $j) { if ($i < 0 || $i >=count($grid) || $j < 0 || $j >=count($grid[$i]) || $grid[$i][$j] == &#34;0&#34;) return; $grid[$i][$j] = &#34;0&#34;; $this- >zeroOut($grid, $i-1, $j); $this- >zeroOut($grid, $i+1, $j); $this- >zeroOut($grid, $i, $j-1); $this- >zeroOut($grid, $i, $j+1); } }

Published on


LeetCode 42. Trapping Rain Water

My solution to LeetCode 42. Trapping Rain Water in JavaScript. /** * @param {number[]} height * @return {number} */ var trap = function (height ) { let maxLeft = 0 ,maxRight = 0 ; let left = 0 ; let right = height .length - 1 ; let total = 0 ; while (left <right ) { if (height [left ] <height [right ]) { if (height [left ] >maxLeft ) { maxLeft = height [left ]; } else { total += maxLeft -height [left ] } left++ ; } else { if (height [right ] >maxRight ) { maxRight = height [right ]; } else { total += maxRight -height [right ] } right -- ; } } return total ; };

Published on


LeetCode 1089: Duplicate Zeros

LeetCode 1089: Duplicate Zeros solution in PHP. /** * @param Integer[] $arr * @return NULL */ function duplicateZeros( & $arr) { $len = count($arr); for ($i=0; $i < $len; $i++) { if (0 === $arr[$i]) { array_splice($arr, $i++, 0, 0); } } array_splice($arr, $len); } }

Published on


LeetCode 11. Container With Most Water

Here is my solution to Container with Most Water in JavaScript. /** * @param {number[]} height * @return {number} */ var maxArea = function (height ) { let left = 0 ; let right = height .length - 1 ; let maxWater = 0 ; while (left <right ) { const water = (right -left ) * Math.min (height [left ],height [right ]); if (water > maxWater ) { maxWater = water ; } if (height [left ] <height [right ]) { left++ ; } else { right -- ; } } return maxWater ; };

Published on


LeetCode 1: Two Sum

/** * @param {number[]} nums * @param {number} target * @return {number[]} */ var twoSum = function (nums ,target ) { const numsToFind = {}; for (let i = 0; i<nums.length; i++ ) { const numToFind = nums [i ]; if (numsToFind [numToFind ] >= 0 ) { return [i ,numsToFind [numToFind ]]; } numsToFind [target - numToFind ] = i ; } }; My solution for Two Sum problem in PHP.

Published on


LeetCode 88: Merge Sorted Array solution

Here is my solution for Merge Sorted Array problem in PHP. This is not the most efficient solution. class Solution { /** * @param Integer[] $nums1 * @param Integer $m * @param Integer[] $nums2 * @param Integer $n * @return NULL */ function merge(&$nums1, $m, $nums2, $n) { if ($n == 0) { return; } if ($m == 0) { for ($i=0; $i < $n; $i++) { $nums1[$i] = $nums2[$i]; } } $i = 0; $j = 0; while ($i < $m && $j < $n) { if ($nums1[$i] < =$nums2[$j]) { $i++; } else { $this->array_insert($nums1, $i++, $nums2[$j]); $m++; $j++; } } while ($j < $n) { $nums1[$i++] = $nums2[$j++]; } } function array_insert( & $arr, $i, $num) { $endArr = array_slice($arr, $i); $arr[$i] = $num; for ($x=$i+1; $x < count ($arr); $x++) { $arr [$x ] = array_shift ($endArr); } } }

Published on


Prev Next