algorithms

Build Status Coverage Status

This contains my practice and preparation for interview/whiteboarding problems. I'll start with the fundamentals and then begin working on more complicated algorithms.

List of Problems

.
├─ 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)

Testing

For the Javascript code:

npm test

For the Java code (this needs to be run in the java directory):

python test_runner.py

Style Guides

Please read and follow the style guides for the respective language.

License

MIT License