This contains my practice and preparation for interview/whiteboarding problems. I'll start with the fundamentals and then begin working on more complicated algorithms.
.
├─ javascript
│ ├─ array
│ │ ├── greatestSubarray.js
│ │ ├── jumpingArray.js
│ │ ├── leader.js
│ │ ├── minAdditions.js
│ │ ├── peak.js
│ │ └── spiralGrid.js
│ ├─ genetic algorithms
│ │ └── string.js
│ ├─ grid
│ │ ├── largestNeighbor.js
│ │ ├── largestRegion.js
│ │ └── gridTraversal.js
│ ├─ kmeans (kth clustering)
│ │ └── index.js
│ ├─ knn (kth nearest neighbor)
│ │ └── index.js
│ ├─ linkedlist
│ │ ├── cyclical.js
│ │ ├── findIntersection.js
│ │ ├── mergeLists.js
│ │ ├── reverseList.js
│ │ ├── sumLists.js
│ │ ├── ListNode.js
│ │ └── DoublyListNode.js
│ ├─ math
│ │ └── randomWeight.js
│ ├─ recursion
│ │ ├── knapsack.js
│ │ ├── depthFinder.js
│ │ ├── numberOfPathsInMatrix.js
│ │ ├── pascalsTriangle.js
│ │ ├── permutations.js
│ │ └── staircase.js
│ ├─ search
│ │ └── binarySearch.js
│ ├─ sort
│ │ └── mergesort.js
│ ├─ string
│ │ ├── balancedParenthese.js
│ │ ├── isPalindrome.js
│ │ ├── longestPalindrome.js
│ │ ├── longestSubsequence.js
│ │ ├── longestSubstring.js
│ │ └── kmp.js
│ ├─ systemdesign
│ │ └── lrucache.js
│ ├─ tree
│ │ ├── pathSum.js
│ │ ├── columnSort.js
│ │ ├── TreeNode.js
│ │ └── killProcess.js
│ └─ trie
└─ java
├─ epi (elements of programming interview)
├─ interview
├─ leetcode
├─ misc
└─ programmingteam (problems from our ACM chapter team)
For the Javascript code:
npm test
For the Java code (this needs to be run in the java
directory):
python test_runner.py
Please read and follow the style guides for the respective language.