# Important Topics for Placement 1. Basic Arithmatic Questions (All solutions would be O(1) ) * Questions on bit manipulation * Questions on counting * Questions on sum of squares, cubes , numbers etc * Questions on sequences like fibonacci, catalan etc 2. Arrays (Usually all the questions asked would be solvable in < O(nlogn) , few exceptions) * Hashing (dictionary based) * Linear time problems * Binary Search (indirect questions) * Window based approach * Sorting based approaches * Dynamic Programming * Divide and Conquer * Merge sort based approaches(very common) * Quick sort partition based approaches * Other questions * Min-heap, Max-heap, heaps 3. Stacks * Majority of questions would involve using 1 or 2 stacks * Ex: Solving Postfix exp * Ex: Valid paranthesis string etc * Must do questions * Maximum/Minimum sum subarray * Maximum/Minimum sum subsequence * subarray with sum equal to or close to x * Circular Rotated sorted array 4. Queues * Priority Queues(commonly used in c++ for heaps) 5. Recursive Topics 6. Linked Lists * Primitive Linked List operations * Detecting,pinpointing and removing cyclicity * Doubly Linked List 7. Strings * Anagrams, palindromes, character counting etc * Substring matching 8. Trees * Searching, insertion, [In|Post|Pre|Level] Order traversals * BST creation and usage * Mirroring trees, doubly-linkedlist to trees * Manipulation of trees * AVL/Red-Black trees 8. Graphs * Traversals