Practice makes perfect
//1.Find the most frequent integer in an array
2.Find pairs in an integer array whose sum is equal to 10 (bonus: do it in linear time)
3.Given 2 integer arrays, determine of the 2nd array is a rotated version of the 1st array. Ex. Original Array A={1,2,3,5,6,7,8} Rotated Array B={5,6,7,8,1,2,3}
4.Write fibbonaci iteratively and recursively (bonus: use dynamic programming)
//5.Find the only element in an array that only occurs once.
6.Find the common elements of 2 int arrays
7.Implement binary search of a sorted array of integers
8.Implement binary search in a rotated array (ex. {5,6,7,8,1,2,3})
9.Use dynamic programming to find the first X prime numbers
10.Write a function that prints out the binary form of an int
11.Implement parseInt
12.Implement squareroot function
13.Implement an exponent function (bonus: now try in log(n) time)
14.Write a multiply function that multiples 2 integers without using *
15.HARD: Given a function rand5() that returns a random int between 0 and 5, implement rand7()
16.HARD: Given a 2D array of 1s and 0s, count the number of "islands of 1s" (e.g. groups of connecting 1s)
Strings
17.Find the first non-repeated character in a String
18.Reverse a String iteratively and recursively
19.Determine if 2 Strings are anagrams
//20.Check if String is a palindrome 20. Bonus: generate palindromes 20. CHALLENGE: generate palindromatic squares like the wikipedia page
21.Check if a String is composed of all unique characters
22.Determine if a String is an int or a double
23.HARD: Find the shortest palindrome in a String
24.HARD: Print all permutations of a String
25.HARD: Given a single-line text String and a maximum width value, write the function 'String justify(String text, int maxWidth)' that formats the input text using full-justification, i.e., extra spaces on each line are equally distributed between the words; the first word on each line is flushed left and the last word on each line is flushed right
Trees
//26.Implement a BST with insert and delete functions
27.Print a tree using BFS and DFS
28.Write a function that determines if a tree is a BST
29.Find the smallest element in a BST
30.Find the 2nd largest number in a BST
31.Given a binary tree which is a sum tree (child nodes add to parent), write an algorithm to determine whether the tree is a valid sum tree
32.Find the distance between 2 nodes in a BST and a normal binary tree
33.Print the coordinates of every node in a binary tree, where root is 0,0
34.Print a tree by levels
35.Given a binary tree which is a sum tree, write an algorithm to determine whether the tree is a valid sum tree
36.Given a tree, verify that it contains a subtree.
37.HARD: Find the max distance between 2 nodes in a BST.
38.HARD: Construct a BST given the pre-order and in-order traversal Strings
Stacks, Queues, and Heaps
39.Implement a stack with push and pop functions
40.Implement a queue with queue and dequeue functions
41.Find the minimum element in a stack in O(1) time
42.Write a function that sorts a stack (bonus: sort the stack in place without extra memory)
43.Implement a binary min heap. Turn it into a binary max heap
44.HARD: Implement a queue using 2 stacks
Linked Lists
45.Implement a linked list (with insert and delete functions)
46.Find the Nth element in a linked list
47.Remove the Nth element of a linked list
48.Check if a linked list has cycles
49.Given a circular linked list, find the node at the beginning of the loop. Example: A-->B-->C --> D-->E -->C, C is the node that begins the loop
50.Check whether a link list is a palindrome
51.Reverse a linked list iteratively and recursively
Sorting
52.Implement bubble sort
53.Implement selection sort
54.Implement insertion sort
55.Implement merge sort
56.Implement quick sort