Cracking the Coding Interview Topic Challenge Difficulty Solution Data Structures Arrays: Left Rotation Easy Solution.java Data Structures Strings: Making Anagrams Easy Solution.java Data Structures Hash Tables: Ransom Note Easy Solution.java Data Structures Linked Lists: Detect a Cycle Easy Solution.java Data Structures Stacks: Balanced Brackets Medium Solution.java Data Structures Queues: A Tale of Two Stacks Medium Solution.java Data Structures Trees: Is This a Binary Search Tree? Medium Solution.java Data Structures Heaps: Find the Running Median Hard Solution.java Data Structures Tries: Contacts Hard Solution.java Algorithms Sorting: Bubble Sort Medium Solution.java Algorithms Sorting: Comparator Medium Solution.java Algorithms Merge Sort: Counting Inversions Hard Solution.java Algorithms Binary Search: Ice Cream Parlor Medium Solution.java Algorithms DFS: Connected Cell in a Grid Hard Solution.java Algorithms BFS: Shortest Reach in a Graph Hard Solution.java Techniques / Concepts Time Complexity: Primality Medium Solution.java Techniques / Concepts Recrusion: Fibonacci Numbers Easy Solution.java Techniques / Concepts Recursion: Davis' Staircase Medium Solution.java Techniques / Concepts DP: Coin Change Hard Solution.java Techniques / Concepts Bit Manipulation: Lonely Integer Easy Solution.java