# DSA data structures and algorithms problems and notes # DSA data structures and algorithms problems and notes priority 1. this list 2. interview prep - ~600 3. leetcode - medium - 766, hard - 319 4. gfg past questions,codechef 5. leetcode (easy - 407) 6. os pbc references- -https://github.com/Jasbir96/PBC/blob/master/reference.md -https://github.com/Jasbir96/Dev_June_20 -https://github.com/ujjwal8571/coding-interview-university#recursion -https://github.com/rajneeshkumar146 -https://docs.google.com/spreadsheets/d/1XdXJbn9NC7fx1CeavItkxR0Yos8rQAC9xXjnH4-f6Eg/edit#gid=0 (IP questions sheet) -https://drive.google.com/drive/u/0/folders/1P7iMz272rtH3WXemcf2z2waQuX0m6cUU (IP notes) -https://www.youtube.com/watch?v=Qc2ieXRgR0k&feature=youtu.be&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718 (DSA lectures interesting) personal resources -https://docs.google.com/spreadsheets/d/1jUuH7D57FP4B5pPBu3KKofW6bUeF-YxkDWZQ-7ha16I/edit?usp=sharing (company sheet) -https://www.geeksforgeeks.org/binary-tree-set-3-types-of-binary-tree/ resources for dbms- -https://www.youtube.com/playlist?list=PLmXKhU9FNesR1rSES7oLdJaNFgmuj0SYV misc resources- -https://www.geeksforgeeks.org/must-do-coding-questions-for-companies-like-amazon-microsoft-adobe/?ref=leftbar-rightbar -https://drive.google.com/drive/u/0/folders/1uJpMlxP7wethLEzk_uO0zv2W1TCY56yY https://leetcode.com/discuss/interview-question/437082/Amazon-Behavioral-questions-or-Leadership-Principles-or-LP#:~:text=Tell%20me%20about%20a%20time%20when%20you%20had%20to%20face,how%20did%20you%20resolve%20them%3F system design resources- -http://highscalability.com/start-here/ mcqs quiz- -https://www.geeksforgeeks.org/quiz-corner-gq/ daily 5hr weekend 10hr total - 45hr 1. array 1.1. MatrixMultiplication done 1.2. WaveTraversal done 1.3. SpiralDisplay done 1.4. ExitPoint 1.5. RotateBy90 done 1.6. ShellRotate Todo 1.7. Diagonal Traversal done 1.8. SaddlePoint done 1.9. SearchIn2dArray done 1.10. SubArrayTargetSum done https://www.geeksforgeeks.org/find-subarray-with-given-sum/ 1.11. EquilibriumIndex done https://www.geeksforgeeks.org/equilibrium-index-of-an-array/ 1.12. ConvertZigZag done https://www.geeksforgeeks.org/convert-array-into-zig-zag-fashion/ 1.13. PairTargetDifference done https://www.geeksforgeeks.org/find-a-pair-with-the-given-difference/ 1.14. ChocolateDistribution done https://www.geeksforgeeks.org/chocolate-distribution-problem/ 1.15. MinPlatforms https://www.geeksforgeeks.org/minimum-number-platforms-required-railwaybus-station/ https://www.interviewbit.com/problems/meeting-rooms/ 1.16. KSmallestSumPair done https://www.geeksforgeeks.org/find-k-pairs-smallest-sums-two-arrays/ 1.17. SearchInSortedPivoted https://www.geeksforgeeks.org/search-an-element-in-a-sorted-and-pivoted-array/ 1.18. PairInSortedPivoted https://www.geeksforgeeks.org/given-a-sorted-and-rotated-array-find-if-there-is-a-pair-with-a-given-sum/ 1.19. RearrangePositiveAndNegative https://www.geeksforgeeks.org/rearrange-positive-and-negative-numbers-publish/ 1.20. LargestSubArrayWithEqual01 done https://www.geeksforgeeks.org/largest-subarray-with-equal-number-of-0s-and-1s/ 1.21. Segregate01 (todo-pivot approach) done https://www.geeksforgeeks.org/segregate-0s-and-1s-in-an-array-by-traversing-array-once/ 1.22. Sort012 done https://www.geeksforgeeks.org/sort-an-array-of-0s-1s-and-2s/ https://leetcode.com/problems/sort-colors/ 1.23. MoveZerosToEnd done https://www.geeksforgeeks.org/move-zeroes-end-array-set-2-using-single-traversal/ 1.24. LargestSumContiguousSubArray done https://www.geeksforgeeks.org/largest-sum-contiguous-subarray/ https://leetcode.com/problems/maximum-subarray/submissions/ 1.25. KConcatenation https://www.codechef.com/problems/KCON https://leetcode.com/problems/k-concatenation-maximum-sum/ 1.26. MaxContiguousCircularSum https://www.geeksforgeeks.org/maximum-contiguous-circular-sum/ 1.27. ReorderArrayUsingGivenIndeces done https://www.geeksforgeeks.org/reorder-a-array-according-to-given-indexes/ 1.28. MinMergesToMakePalindrome done https://www.geeksforgeeks.org/find-minimum-number-of-merge-operations-to-make-an-array-palindrome/ 1.29. MaxProductSubarray done-rev https://www.geeksforgeeks.org/maximum-product-subarray/ https://leetcode.com/problems/maximum-product-subarray/ 1.30. MaxDiffElementsLargerAfter done https://www.geeksforgeeks.org/maximum-difference-between-two-elements/ 1.31. MinswapsKelements done https://www.geeksforgeeks.org/minimum-swaps-required-bring-elements-less-equal-k-together/ 1.32. SmallestPositiveSubsetSum done https://www.geeksforgeeks.org/find-smallest-value-represented-sum-subset-given-array/ 1.33. GenerateSortedArrayAlternateElms https://www.geeksforgeeks.org/generate-all-possible-sorted-arrays-from-alternate-elements-of-two-given-arrays/ 1.34. MaxLengthBitonicSubarray done https://www.geeksforgeeks.org/maximum-length-bitonic-subarray/ https://www.geeksforgeeks.org/maximum-length-bitonic-subarray-set-2-time-o1-space/ 1.35. LargestArraySumDivisibleByK done https://www.geeksforgeeks.org/longest-subarray-sum-divisible-k/ 1.36. NextPermutation https://leetcode.com/problems/next-permutation/ 1.37. MergeOverlappingInterval https://www.geeksforgeeks.org/merging-intervals/ https://leetcode.com/problems/merge-intervals/ 1.38. ThreeWayPartition https://www.geeksforgeeks.org/three-way-partitioning-of-an-array-around-a-given-range/ 1.39. MinimizeMaxDistBetweenHeights www.geeksforgeeks.org/minimize-the-maximum-difference-between-the-heights/ www.interviewbit.com/problems/minimise-the-maximum-difference-between-the-heights/ 1.40. LargestSumSubArrayKnumbers https://www.geeksforgeeks.org/largest-sum-subarray-least-k-numbers/ 1.41. MaxSum3OverlappingSubArrays https://leetcode.com/problems/maximum-sum-of-3-non-overlapping-subarrays/ 1.42. FourSum https://www.geeksforgeeks.org/find-four-elements-that-sum-to-a-given-value-set-2/ 1.43. MaxSumNonAdjacent https://www.geeksforgeeks.org/maximum-sum-such-that-no-two-elements-are-adjacent/ 1.44. CommonElementsThreeSorted https://www.geeksforgeeks.org/find-common-elements-three-sorted-arrays/ 1.45. CountTripletSumLessThanK https://www.geeksforgeeks.org/count-triplets-with-sum-smaller-that-a-given-value/ 1.46. CountSubarrayTargetSum done https://www.geeksforgeeks.org/number-subarrays-sum-exactly-equal-k/ https://leetcode.com/problems/subarray-sum-equals-k/ 1.47. CountSubarraySumDivisibleByK done https://leetcode.com/problems/subarray-sums-divisible-by-k/ 1.48. LeftFloor done https://www.geeksforgeeks.org/largest-element-smaller-than-current-element-on-left-for-every-element-in-array/ 1.49. MinDistanceBWNumbers https://www.geeksforgeeks.org/find-the-minimum-distance-between-two-numbers/ 1.50. IsToeplitz https://leetcode.com/problems/toeplitz-matrix/ https://www.geeksforgeeks.org/find-if-given-matrix-is-toeplitz-or-not/ 1.51. ContainerWithMostWater https://leetcode.com/problems/container-with-most-water/ https://leetcode.com/problems/shortest-subarray-with-sum-at-least-k/ https://leetcode.com/problems/teemo-attacking/ https://www.lintcode.com/problem/sort-transformed-array/description https://www.geeksforgeeks.org/sort-array-applying-given-equation/ https://www.geeksforgeeks.org/minimum-distance-between-words-of-a-string/ https://www.lintcode.com/problem/shortest-word-distance/description https://leetcode.com/articles/shortest-word-distance-ii/# https://tonycao.gitbooks.io/leetcode-locked/content/LeetCode%20Locked/c1.4.html https://www.programcreek.com/2014/08/leetcode-shortest-word-distance-iii/ https://www.geeksforgeeks.org/check-if-two-given-strings-are-at-edit-distance-one/ https://www.lintcode.com/en/old/problem/one-edit-distance/ https://leetcode.com/problems/positions-of-large-groups/ https://www.geeksforgeeks.org/segregate-even-and-odd-numbers/ https://leetcode.com/problems/sort-array-by-parity/ https://leetcode.com/problems/sort-array-by-parity-ii/ https://leetcode.com/problems/beautiful-arrangement-ii/ https://leetcode.com/problems/array-nesting/ https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/ CircularArrayLoop https://leetcode.com/problems/circular-array-loop/ https://www.geeksforgeeks.org/check-loop-array-according-given-constraints/ https://xiaoguan.gitbooks.io/leetcode/content/LeetCode/548-split-array-with-equal-sum-medium.html https://leetcode.com/problems/best-sightseeing-pair/ https://leetcode.com/problems/pour-water/ https://leetcode.com/problems/3sum-closest/ https://leetcode.com/problems/circular-array-loop/ https://leetcode.com/problems/ambiguous-coordinates/ https://leetcode.com/problems/compare-version-numbers/ https://www.lintcode.com/problem/range-addition/description GlobalLocalInversions https://leetcode.com/problems/global-and-local-inversions/ FlipStringToMonotonicIncreasing https://leetcode.com/problems/flip-string-to-monotone-increasing/ https://www.geeksforgeeks.org/minimum-flips-make-1s-left-0s-right-set-2/ (optional)LongestConsecutiveOnes1swap https://www.geeksforgeeks.org/length-of-longest-consecutive-ones-by-at-most-one-swap-in-a-binary-string/ MaxConsecutiveOnesKswaps https://leetcode.com/problems/max-consecutive-ones-iii/ https://www.geeksforgeeks.org/longest-subsegment-1s-formed-changing-k-0s/ NextGreaterElement3 https://leetcode.com/problems/next-greater-element-iii/ TotalWidthOfArray https://www.geeksforgeeks.org/sum-of-width-max-and-min-diff-of-all-subsequences/ ShortestPalindrome https://leetcode.com/problems/shortest-palindrome/ https://www.geeksforgeeks.org/minimum-characters-added-front-make-string-palindrome/ CountSubarrayProductLessThanK https://leetcode.com/problems/subarray-product-less-than-k/ CountSubseqProductLessThanK https://www.geeksforgeeks.org/count-subsequences-product-less-k/ 2. Recursion 2.1. TowerOfHanoi done 2.2. MaxOfArray done 2.3. FirstIndex done 2.4. LastIndex done 2.5. AllIndices done 2.6. GetSubsequence done 2.8. GetKPC done 2.9. GetStairPaths done 2.10. GetMazePaths done 2.11. GetMazePathWithJumps done 2.12. PrintKPC done 2.13. PrintStairPaths done 2.14. PrintSubsequence done 2.15. PrintMazePathWithJumps done 2.16. PrintPermutations done 2.17. PrintEncoding done 2.18. Floodfill done 2.19. TargetSum Subsets done 2.20. NQueens done 2.21. KnightsTour Todo 2.22. Sudoku 2.23. MagnatePuzzle 2.24. RatMaze2Direction https://www.geeksforgeeks.org/rat-in-a-maze-backtracking-2/ 2.25. RatMazeAllDirection https://www.geeksforgeeks.org/rat-in-a-maze-problem-when-movement-in-all-possible-directions-is-allowed 2.26. WordBreakProblem https://www.geeksforgeeks.org/word-break-problem-using-backtracking/ 2.27. CombinationalSum https://www.geeksforgeeks.org/combinational-sum/ 2.28. KSubSetEqualSum https://www.geeksforgeeks.org/partition-set-k-subsets-equal-sum/ 2.29. MatchPatternWithoutRegex https://www.geeksforgeeks.org/match-a-pattern-and-string-without-using-regular-expressions/ 2.30. LongestRouteHurdleMatrix https://www.geeksforgeeks.org/longest-possible-route-in-a-matrix-with-hurdles/ 2.31. Cryptarithmatic https://www.geeksforgeeks.org/solving-cryptarithmetic-puzzles-backtracking-8/ 2.32. CrosswordPuzzleProblem https://www.geeksforgeeks.org/solve-crossword-puzzle/ 2.33. PrintPalindromicPartitions https://www.geeksforgeeks.org/print-palindromic-partitions-string/ 2.34. LandMines https://www.geeksforgeeks.org/find-shortest-safe-route-in-a-path-with-landmines/ 2.35. RemoveInvalidParenthesis https://leetcode.com/problems/remove-invalid-parentheses/ https://www.geeksforgeeks.org/remove-invalid-parentheses/ https://www.interviewbit.com/problems/remove-invalid-parentheses/ 2.36. TugOfWar https://www.geeksforgeeks.org/tug-of-war/ 2.37. LargestPermutationKswaps https://www.geeksforgeeks.org/largest-permutation-k-swaps/ https://www.geeksforgeeks.org/find-maximum-number-possible-by-doing-at-most-k-swaps/ 2.38. PathsCornerToMiddle https://www.geeksforgeeks.org/find-paths-from-corner-cell-to-middle-cell-in-maze/ 3. DP (r-recursion, m-memoized, i-iterative) and Greedy 3.1. Fibonacci-dp m 3.2. Climb Stairs i 3.3. Climb Stairs With Variable Jumps m i 3.4. Climb Stairs With Minimum Moves r m i 3.5. Min Cost In Maze Traversal r m 3.6. Goldmine m 3.7. Target Sum Subsets - Dp r m 3.8. Coin Change Combination m i 3.9. Coin Change Permutations i 3.10. Zero One Knapsack r m 3.11. Unbounded Knapsack m 3.12. Count Binary Strings i 3.13. Arrange Buildings i 3.14. Count Encodings m 3.15. Count A+b+c+ Subsequences r 3.16. Maximum Sum Non Adjacent Elements r 3.17. Paint House m http://tiancao.me/Leetcode-Unlocked/LeetCode%20Locked/c1.15.html 3.18. Paint House - Many Colors m 3.19. Paint Fence r m https://cheonhyangzhang.gitbooks.io/leetcode-solutions/content/276-paint-fence.html https://www.geeksforgeeks.org/painting-fence-algorithm/ 3.20. Tiling With 2 * 1 Tiles m 3.21. Tiling With M * 1 Tiles m 3.22. Friends Pairing r m 3.23. Partition Into Subsets r 3.24. BuyAndSellStocks OTA i 3.25. BuyAndSellStocks ITA r 3.26. BuyAndSellStocksWithTransactionFee ITA r 3.27. BuyAndSellStocksWithCooldown -ITA Todo 3.28. BuyAndSellStocks Two TA Todo 3.29. BuyAndSellStocks K T Todo 3.30. Longest Increasing Subsequence r m i 3.31. Maximum Sum Increasing Subsequence r 3.32. Longest Bitonic Subsequence r 3.33. Maximum Non-overlapping Bridges Todo 3.34. Russian Doll Envelopes i https://leetcode.com/problems/russian-doll-envelopes/ 3.35. Longest Common Subsequence r 3.36. Longest Palindromic Subsequences r 3.37. Count Palindromic Subsequences Todo 3.38. Count Palindromic Substrings Todo 3.39. Longest Palindromic Substring Todo https://leetcode.com/problems/sum-of-subsequence-widths/ https://leetcode.com/problems/2-keys-keyboard/ https://www.geeksforgeeks.org/bitmasking-and-dynamic-programming-set-1-count-ways-to-assign-unique-cap-to-every-person/ https://leetcode.com/problems/distinct-subsequences/ https://www.interviewbit.com/problems/distinct-subsequences/ https://www.geeksforgeeks.org/number-subsequences-form-ai-bj-ck/ https://leetcode.com/problems/arithmetic-slices/ https://leetcode.com/problems/scramble-string/ https://leetcode.com/problems/cherry-pickup/ https://www.geeksforgeeks.org/optimal-binary-search-tree-dp-24/ https://www.geeksforgeeks.org/find-number-valid-parentheses-expressions-given-length/ https://leetcode.com/problems/generate-parentheses/ https://leetcode.com/problems/tiling-a-rectangle-with-the-fewest-squares/ https://www.geeksforgeeks.org/paper-cut-minimum-number-squares-set-2/ https://www.geeksforgeeks.org/paper-cut-minimum-number-squares/ https://leetcode.com/problems/maximal-square/ https://leetcode.com/problems/maximal-rectangle/ https://www.interviewbit.com/problems/rod-cutting/ https://www.geeksforgeeks.org/cutting-a-rod-dp-13/ JumpGame1 https://leetcode.com/problems/jump-game/ JumpGame2 https://leetcode.com/problems/jump-game-ii/ CalculateEditDistance https://www.geeksforgeeks.org/edit-distance-dp-5/ https://leetcode.com/problems/edit-distance/ CheckOneEditDistance https://www.geeksforgeeks.org/check-if-two-given-strings-are-at-edit-distance-one/ RottenOranges https://leetcode.com/problems/rotting-oranges/ https://leetcode.com/problems/super-egg-drop/ https://brilliant.org/wiki/egg-dropping/ LongestPrefixSuffix https://www.geeksforgeeks.org/longest-prefix-also-suffix/ BurstBaloons https://leetcode.com/problems/burst-balloons/ LongestConsecutiveSubsequence https://www.geeksforgeeks.org/longest-consecutive-subsequence/ 4. Stacks and Queues 4.1. NGE done 4.2. StockSpan done 4.3. LargestAreaHistgram done 4.4. SlidingWindowMaximum done 4.5. SmallestNumberFollowingPattern done 4.6. CelebrityProblem done 4.7. MinStack done 4.8. MinStack_2 Todo 4.9. TwoStack done 4.10. Kstack 4.11. MergeOverlappingInterval 4.12. PetrolPumpProblem 5. LinkedList 5.1. ReverseDataIterative done 5.2. ReverseDataRecursive done 5.3. ReversePointerIterative done 5.4. ReversePointerRecursive done 5.5. KReverseMulti Todo 5.6. MidPoint done 5.7. KthFromLast done https://www.geeksforgeeks.org/nth-node-from-the-end-of-a-linked-list/ 5.8. MergeTwoSortedLL done https://www.geeksforgeeks.org/merge-two-sorted-lists-place/ 5.9. RemoveDuplicatesInSortedLL done 5.10. OddEvenLL done https://www.geeksforgeeks.org/segregate-even-and-odd-elements-in-a-linked-list/ 5.11. IsPalindrome done 5.12. Fold Todo https://www.geeksforgeeks.org/rearrange-a-given-linked-list-in-place/ 5.13. Unfold 5.14. AddTwoLL Todo https://www.geeksforgeeks.org/add-two-numbers-represented-by-linked-lists/ 5.15. IntersectionPoint done https://leetcode.com/problems/intersection-of-two-linked-lists/ 5.17. CloneLLWithRandomPointer https://www.geeksforgeeks.org/a-linked-list-with-next-and-arbit-pointer/ 5.18. FloydCycle 5.19. GetAddRemove done 5.20. DeleteNodeOnlyNodeReference done https://www.geeksforgeeks.org/in-a-linked-list-given-only-a-pointer-to-a-node-to-be-deleted-in-a-singly-linked-list-how-do-you-delete-it/ https://leetcode.com/problems/delete-node-in-a-linked-list/ 5.21. RemoveDuplicatesUnsortedLL https://www.geeksforgeeks.org/remove-duplicates-from-an-unsorted-linked-list/ 5.22. DeleteGreaterNodesOnRight https://www.geeksforgeeks.org/delete-nodes-which-have-a-greater-value-on-right-side/ https://www.geeksforgeeks.org/delete-nodes-which-have-a-greater-value-on-right-side-using-recursion/ 5.23. ThreeLinkedListTripletSum https://www.geeksforgeeks.org/find-a-triplet-from-three-linked-lists-with-sum-equal-to-a-given-number/ 5.24. FlattenMultilevel https://www.geeksforgeeks.org/flatten-a-linked-list-with-next-and-child-pointers/ https://www.geeksforgeeks.org/flatten-a-multi-level-linked-list-set-2-depth-wise/ 5.25. FlattenLLSorted https://www.geeksforgeeks.org/flattening-a-linked-list/ 5.26. PointToNextLarger https://www.geeksforgeeks.org/point-to-next-higher-value-node-in-a-linked-list-with-an-arbitrary-pointer/ 5.27. PointToNextLarderRightSide https://www.geeksforgeeks.org/point-arbit-pointer-greatest-value-right-side-node-linked-list/ 5.28. Zigzag https://www.geeksforgeeks.org/linked-list-in-zig-zag-fashion/ 5.39. SortAbsoluteSortesLL https://www.geeksforgeeks.org/sort-linked-list-already-sorted-absolute-values/ 5.40. SubtractNumberRepresentedByLL https://www.geeksforgeeks.org/subtract-two-numbers-represented-as-linked-lists/ 5.41. PairSumSortedLL https://www.geeksforgeeks.org/find-pair-given-sum-sorted-singly-linked-without-extra-space/ 5.42. MultiplyTwoLL https://www.geeksforgeeks.org/multiply-two-numbers-represented-linked-lists/ 5.43. RotateLLBlockwise https://www.geeksforgeeks.org/rotate-linked-list-block-wise/ 5.44. JosephusCircleCLL o(n) complexity tbd https://www.geeksforgeeks.org/josephus-circle-using-circular-linked-list/ 5.45. CountedTripletsTargetSumSortedDLL https://www.geeksforgeeks.org/count-triplets-sorted-doubly-linked-list-whose-sum-equal-given-value-x/ 5.46. SortBitonicDLL https://www.geeksforgeeks.org/sort-biotonic-doubly-linked-list/ 5.47. SortKSortedDLL https://www.geeksforgeeks.org/sort-k-sorted-doubly-linked-list/ 6. GenericTrees 6.1. SizeSumMaxHeight Done 6.2. Traversals(pre-post-level--iterative-recursive) Todo 6.3. RemoveLeaves Done 6.4. Linearize Done 6.5. Find Done 6.6. NodeToRootPath Done 6.7. LCA done 6.8. DistanceBetweenTwoNodes done 6.9. PredecessorAndSuccessor done 6.10. CeilAndFloor done 6.11. KthLargestElement done 6.12. NodeWithMaxSum done 6.13. Diameter done 7. BinaryTree 7.1. SizeSumMaxHeight 7.2. Traversals(pre-post-in-level--iterative-recursive) done 7.3. NodeToRootPath 7.4. PrintKLevelsDown done 7.5. PathToLeafFromRootInRange Done 7.6. TransFormToLeftCloneTreeAndReverse https://www.geeksforgeeks.org/double-tree/ 7.7. PrintSingleChildNodes Done 7.8. RemoveLeaves Done 7.9. PrintNodesAtKDitstance done https://www.geeksforgeeks.org/print-nodes-distance-k-given-node-binary-tree/ 7.10. IsBalanced done 7.11. IsBST done 7.12. TreeFromInPre done 7.13. TreeFromInPost done 7.14. TreeFromPrePost(condition - tree is full BT) 7.15. TreeFromInLevel 7.16. MultiSolver 7.17. LCA https://www.geeksforgeeks.org/lowest-common-ancestor-binary-tree-set-1/ 7.18. Diameter(normal + efficient) normal-done efficient-todo 7.19. LargestBst done 7.20. RootToLeafPathTargetSum done https://www.geeksforgeeks.org/root-to-leaf-path-sum-equal-to-a-given-number/ 7.21. MaxSumN2L 7.22. MaxSumL2L done https://www.geeksforgeeks.org/find-maximum-path-sum-two-leaves-binary-tree/ 7.23. MaxSumN2N done https://www.geeksforgeeks.org/find-maximum-path-sum-in-a-binary-tree/ 7.24. TreeFromParentArray https://www.geeksforgeeks.org/construct-a-binary-tree-from-parent-array-representation/ 7.25. TreeFromPerfectArray(CompleteBinaryTreeFromGivenLevelOrder) 7.26. TopView done 7.27. BottomView done 7.28. LeftView done https://www.geeksforgeeks.org/print-left-view-binary-tree/ 7.29. RightView done 7.30. BoundaryTraversal https://www.geeksforgeeks.org/boundary-traversal-of-binary-tree/ 7.31. VerticalSum done https://www.geeksforgeeks.org/vertical-sum-in-a-given-binary-tree/ https://www.geeksforgeeks.org/vertical-sum-in-binary-tree-set-space-optimized/ 7.32. TreeToLL https://www.geeksforgeeks.org/in-place-convert-a-given-binary-tree-to-doubly-linked-list/ 7.33. LLtoTree ASK 7.34. TreeToCLL https://www.geeksforgeeks.org/convert-a-binary-tree-to-a-circular-doubly-link-list/ 7.35. CLLtoTree ASK 7.36. TiltBT https://www.geeksforgeeks.org/tilt-binary-tree/ 7.37. CloneWithRandomPointer https://www.geeksforgeeks.org/clone-binary-tree-random-pointers/ 7.38. SubtreeTargetSum https://www.geeksforgeeks.org/count-subtress-sum-given-value-x/ 7.39. InorderWithoutRecusrion https://www.geeksforgeeks.org/inorder-tree-traversal-without-recursion/ 7.40. InorderWithoutRecusrionWithoutStack https://www.geeksforgeeks.org/inorder-tree-traversal-without-recursion-and-without-stack/ 7.41. MorrisTraversalPreorder https://www.geeksforgeeks.org/morris-traversal-for-preorder/ 7.42. DiagonalTraversal https://www.geeksforgeeks.org/diagonal-traversal-of-binary-tree/ 7.43. VerticalTraversal https://www.geeksforgeeks.org/print-binary-tree-vertical-order/ 7.44. NextNodeInLevelOrder https://www.geeksforgeeks.org/find-next-right-node-of-a-given-key/ 7.45. SpecialTreeFromPreorder https://www.geeksforgeeks.org/construct-a-special-tree-from-given-preorder-traversal/ 7.50. DLLFromTernaryTree https://www.geeksforgeeks.org/create-doubly-linked-list-ternary-ree/ 7.51. DeepestLeftLeaf https://www.geeksforgeeks.org/deepest-left-leaf-node-in-a-binary-tree/ 7.52. ConvertToSumTree https://www.geeksforgeeks.org/convert-a-given-tree-to-sum-tree/ 7.53. ConvertToLeftSubtreeSum https://www.geeksforgeeks.org/change-a-binary-tree-so-that-every-node-stores-sum-of-all-nodes-in-left-subtree/ 7.54. ConnectLeavesInDLL popular https://www.geeksforgeeks.org/connect-leaves-doubly-linked-list/ 7.55. EvenForrest https://www.geeksforgeeks.org/convert-tree-forest-even-nodes/ 7.56. DistanceBetweenTwoNodes https://www.geeksforgeeks.org/find-distance-between-two-nodes-of-a-binary-tree/ 7.57. PopulateInorderSuccessor https://www.geeksforgeeks.org/populate-inorder-successor-for-all-nodes/ 7.58. MaxWidth https://www.geeksforgeeks.org/maximum-width-of-a-binary-tree/ 7.59. MaxRootToLeafPath https://www.geeksforgeeks.org/find-the-maximum-sum-path-in-a-binary-tree/ 7.60. ReverseAlternateLevels https://www.geeksforgeeks.org/reverse-alternate-levels-binary-tree/ 7.61. DiagonalSum https://www.geeksforgeeks.org/diagonal-sum-binary-tree/ 7.62. IsSubtreeOfAnother https://www.geeksforgeeks.org/check-if-a-binary-tree-is-subtree-of-another-binary-tree/ 7.63. SpecificLevelOrderTrraversal https://www.geeksforgeeks.org/perfect-binary-tree-specific-level-order-traversal/ 7.64. HeightOfBTFromParentArray https://www.geeksforgeeks.org/find-height-binary-tree-represented-parent-array/ 7.65. RemoveLeafKLengthPaths https://www.geeksforgeeks.org/remove-nodes-root-leaf-paths-length-k/ 7.66. SerializeDeserialize https://www.geeksforgeeks.org/serialize-deserialize-binary-tree/ 7.67. HeightInLeafConnectedBT https://www.geeksforgeeks.org/find-height-of-a-special-binary-tree-whose-leaf-nodes-are-connected/ 7.68. ExpressionTree https://www.geeksforgeeks.org/expression-tree/ 7.69. WidthOfABinaryTree https://www.geeksforgeeks.org/width-binary-tree-set-1/ 7.70. CountSingleValuedTrees https://www.geeksforgeeks.org/find-count-of-singly-subtrees/ https://leetcode.com/articles/count-univalue-subtrees/# https://www.geeksforgeeks.org/check-weather-given-binary-tree-perfect-not/ https://leetcode.com/problems/binary-tree-cameras/ https://www.geeksforgeeks.org/sum-nodes-k-th-level-tree-represented-string/ https://leetcode.com/problems/binary-tree-maximum-path-sum/ https://leetcode.com/problems/binary-tree-paths/ https://leetcode.com/problems/binary-tree-pruning/ https://leetcode.com/problems/flatten-binary-tree-to-linked-list/ https://leetcode.com/problems/boundary-of-binary-tree/ https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/ https://leetcode.com/problems/path-sum/ https://www.geeksforgeeks.org/print-nodes-odd-levels-tree/ https://www.geeksforgeeks.org/difference-between-sums-of-odd-and-even-levels/ https://www.geeksforgeeks.org/print-nodes-distance-k-leaf-node/ https://leetcode.com/problems/minimum-distance-between-bst-nodes/ https://leetcode.com/problems/minimum-depth-of-binary-tree/ https://leetcode.com/problems/maximum-width-of-binary-tree/ https://www.geeksforgeeks.org/maximum-width-of-a-binary-tree/ https://www.geeksforgeeks.org/given-linked-list-representation-of-complete-tree-convert-it-to-linked-representation/ https://www.geeksforgeeks.org/longest-consecutive-sequence-binary-tree/ https://www.lintcode.com/en/old/problem/binary-tree-longest-consecutive-sequence/ https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/ https://www.geeksforgeeks.org/print-postorder-from-given-inorder-and-preorder-traversals/ https://leetcode.com/problems/construct-binary-tree-from-preorder-and-postorder-traversal/ https://www.geeksforgeeks.org/inorder-predecessor-successor-given-key-bst/ https://www.geeksforgeeks.org/inorder-predecessor-and-successor-for-a-given-key-in-bst-iterative-approach/ https://www.geeksforgeeks.org/find-postorder-traversal-of-bst-from-preorder-traversal/ https://www.geeksforgeeks.org/check-if-a-given-array-can-represent-preorder-traversal-of-binary-search-tree/ https://www.geeksforgeeks.org/print-bst-keys-in-the-given-range/ https://www.geeksforgeeks.org/print-common-nodes-in-two-binary-search-trees/ https://www.geeksforgeeks.org/leaf-nodes-preorder-binary-search-tree/ https://practice.geeksforgeeks.org/problems/pth-common-ancestor-in-bst/1 https://www.geeksforgeeks.org/count-non-leaf-nodes-binary-tree/ https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ https://leetcode.com/problems/construct-string-from-binary-tree/ https://kennyzhuang.gitbooks.io/leetcode-lock/content/270_closest_binary_search_tree_value_ii.html https://tenderleo.gitbooks.io/leetcode-solutions-/content/GoogleHard/272.html https://www.geeksforgeeks.org/width-binary-tree-set-1/ https://www.geeksforgeeks.org/vertical-width-binary-tree-set-2/ https://leetcode.com/problems/unique-binary-search-trees/ https://www.geeksforgeeks.org/check-if-a-given-binary-tree-is-sumtree/ https://leetcode.com/problems/sum-root-to-leaf-numbers/ https://practice.geeksforgeeks.org/problems/image-multiplication/0 https://www.geeksforgeeks.org/check-if-a-given-binary-tree-is-heap/ https://practice.geeksforgeeks.org/problems/leaf-under-budget/1 https://www.geeksforgeeks.org/kth-largest-element-bst-using-constant-extra-space/ https://leetcode.com/problems/kth-smallest-element-in-a-bst/ 8. BinarySearchTree and AVL 8.1. GetAddRemove 8.2. Find 8.3. MinMax 8.4. LCA https://www.geeksforgeeks.org/lowest-common-ancestor-in-a-binary-search-tree/ 8.5. RepalceBySumOfGV 8.6. PrintInRange 9. HashMap 9.1. HashmapCreation 9.2. HighestFrequencyChar 9.3. GetCommonElementDistinct 9.4. GetCommonElementAll 9.5. LongestConsecutiveSequence 9.6. SmallestSubarrayWithAllMaxFreq https://www.geeksforgeeks.org/smallest-subarray-with-all-occurrences-of-a-most-frequent-element/ 9,7. subDomainFrequency https://leetcode.com/problems/subdomain-visit-count/ https://www.geeksforgeeks.org/find-elements-present-first-array-not-second/ https://practice.geeksforgeeks.org/problems/distinct-elements-in-a-stream/0 GroupShiftedSequence https://www.geeksforgeeks.org/group-shifted-string/ CustomeSortString https://leetcode.com/problems/custom-sort-string/ https://www.geeksforgeeks.org/sort-string-according-order-defined-another-string/ 10. Heap 10.1. Heap(implementation) 10.2. KSmallestLargestElements done https://www.geeksforgeeks.org/k-largestor-smallest-elements-in-an-array/ 10.3. SortKsortedArray done 10.4. MergeKsortedLinkedLists done https://www.geeksforgeeks.org/merge-k-sorted-linked-lists/ https://leetcode.com/problems/merge-k-sorted-lists/ 10.5. Huffman Encoding 10.6. MedianPriorityQueue 10.7. Sort2Arrays 10.8. HeapSort 10.9. MergeKSortedArrays done 10.10. KSmallestOriginalOrder(+efficient) done https://www.geeksforgeeks.org/find-n-smallest-element-given-array-order-array/ https://www.geeksforgeeks.org/k-smallest-elements-order-using-o1-extra-space/ 11. Trie 11.1. Trie creation 12. Graphs 12.1. Implementation 12.2. HasPath 12.3. PrintAllPaths 12.4. ShortestPath 12.5. LongestPath 12.6. Ceil 12.7. Floor 12.8. BFSandDFS 12.9. LevelOrder 12.10. GetConnectedComponents 12.11. IsConnected 12.12. IsAcyclic 12.13. IsBipartite 12.14. CountIslands 12.15. Djikstra 12.16. Prims 12.17. KnightsTour 12.18. Astronauts 12.19. Diameter 12.20. HamiltonianCnP https://www.geeksforgeeks.org/shortest-path-reach-one-prime-changing-single-digit-time/ https://www.geeksforgeeks.org/count-number-trees-forest/ https://www.geeksforgeeks.org/water-jug-problem-using-bfs/ 13. Math 14. Strings 14.1. SmallestWindowWithAllCharsOfiteself https://www.geeksforgeeks.org/smallest-window-contains-characters-string/ 14.2. SmallestWindowWithAllCharsOfanother https://www.geeksforgeeks.org/find-the-smallest-window-in-a-string-containing-all-characters-of-another-string/ https://leetcode.com/problems/minimum-window-substring/ 14.3. PrintWordsSameCharacterSet https://www.geeksforgeeks.org/print-words-together-set-characters/ 14.4. SmallestWindowWithAllDistinctCharsOfanother 14.5. RearrangeNoCommonAdjacent https://www.geeksforgeeks.org/rearrange-characters-string-no-two-adjacent/?ref=rp 14.6. LongPressedName https://leetcode.com/problems/long-pressed-name/ 14.7. RansomNote https://leetcode.com/problems/ransom-note/ 14.8. RemoveComments https://leetcode.com/problems/remove-comments/ 14.9. CountBinarySubstring https://leetcode.com/problems/count-binary-substrings/ 14.10. CountTernarySubstring https://www.geeksforgeeks.org/substring-equal-number-0-1-2/ 14.11. PermutationInString Done https://leetcode.com/problems/permutation-in-string/ https://leetcode.com/problems/k-closest-points-to-origin/ https://leetcode.com/problems/binary-subarrays-with-sum/ https://leetcode.com/problems/jewels-and-stones/ https://leetcode.com/problems/keyboard-row/ https://leetcode.com/problems/isomorphic-strings/ https://www.geeksforgeeks.org/check-string-isogram-not/ https://leetcode.com/problems/island-perimeter/ https://www.geeksforgeeks.org/maximum-number-characters-two-character-string/ https://leetcode.com/problems/longest-substring-without-repeating-characters/ https://leetcode.com/problems/subarrays-with-k-different-integers/ https://www.geeksforgeeks.org/count-of-all-unique-substrings-with-non-repeating-characters/ https://www.geeksforgeeks.org/count-number-of-substrings-with-exactly-k-distinct-characters/ https://www.geeksforgeeks.org/find-the-longest-substring-with-k-unique-characters-in-a-given-string/ https://leetcode.com/problems/longest-palindrome/ https://www.geeksforgeeks.org/find-the-longest-substring-with-k-unique-characters-in-a-given-string/ https://www.geeksforgeeks.org/longest-substring-with-k-unique-characters-using-binary-search/ https://leetcode.com/problems/longest-consecutive-sequence/ https://www.geeksforgeeks.org/count-subarrays-total-distinct-elements-original-array/ https://www.geeksforgeeks.org/count-substrings-binary-string-containing-k-ones/ https://leetcode.com/problems/word-pattern/ https://leetcode.com/problems/reveal-cards-in-increasing-order/ https://leetcode.com/problems/shifting-letters/ https://leetcode.com/problems/integer-to-english-words/ https://leetcode.com/problems/long-pressed-name/ https://www.lintcode.com/problem/next-closest-time/description https://www.lintcode.com/problem/add-bold-tag-in-string/description https://www.lintcode.com/problem/similar-rgb-color/ RomanToInteger https://leetcode.com/problems/roman-to-integer/ IntegerToRoman https://leetcode.com/problems/integer-to-roman/ RearrangeNoConsecutive https://www.geeksforgeeks.org/rearrange-the-characters-of-the-string-such-that-no-two-adjacent-characters-are-consecutive-english-alphabets/?ref=rp https://www.geeksforgeeks.org/python-get-the-smallest-window-in-a-string-containing-all-characters-of-given-pattern/?ref=rp ContainsBinaryPermutations https://www.geeksforgeeks.org/check-if-a-binary-string-contains-all-permutations-of-length-k/ https://leetcode.com/problems/check-if-a-string-contains-all-binary-codes-of-size-k/ ContainsBinaryTillN https://leetcode.com/problems/binary-string-with-substrings-representing-1-to-n/ ClosestPalindrome https://leetcode.com/problems/find-the-closest-palindrome/ group anagram https://leetcode.com/problems/group-anagrams/ https://www.geeksforgeeks.org/given-a-sequence-of-words-print-all-anagrams-together/ 15. Searching and Sorting 15.1. MajorityElement https://www.geeksforgeeks.org/majority-element/ 15.2. SearchingKDistantArray https://www.geeksforgeeks.org/searching-array-adjacent-differ-k/ 15.3. FindMissingRepeating https://www.geeksforgeeks.org/find-a-repeating-and-a-missing-number/ 15.4. FindCeilingInSortedArray https://www.geeksforgeeks.org/ceiling-in-a-sorted-array/ 15.5. 3WayQuickSort https://www.geeksforgeeks.org/3-way-quicksort-dutch-national-flag/ 15.6. CountSort https://www.geeksforgeeks.org/counting-sort/ 15.7. RadixSort https://www.geeksforgeeks.org/radix-sort/ 15.8. SortDateEfficient https://www.geeksforgeeks.org/how-to-efficiently-sort-a-big-list-dates-in-20s/ 15.9. MiniCostForEqualArray https://www.geeksforgeeks.org/make-array-elements-equal-minimum-cost/ 15.10. SortByBitCount https://www.geeksforgeeks.org/sort-array-according-count-set-bits/ 15.11. SortElementsByFrequency https://www.geeksforgeeks.org/sort-elements-by-frequency/ https://leetcode.com/problems/sort-characters-by-frequency/ 15.12. GreatestProductPair https://www.geeksforgeeks.org/find-pair-with-greatest-product-in-array/ 15.13. MinSwapsToSort https://www.geeksforgeeks.org/minimum-number-swaps-required-sort-array/ https://www.geeksforgeeks.org/minimum-number-of-swaps-required-to-sort-an-array-set-2/ https://www.geeksforgeeks.org/minimum-number-of-swaps-required-to-sort-an-array-of-first-n-number/ 15.14. PermuteTwoArraysPairSumGTK https://www.geeksforgeeks.org/permute-two-arrays-sum-every-pair-greater-equal-k/ 15.15. MinSwapsIdenticalArray https://www.geeksforgeeks.org/minimum-swaps-to-make-two-array-identical/ 15.16. PancakeSorting https://leetcode.com/problems/pancake-sorting/ 15.17. SortAfterSquaring https://www.geeksforgeeks.org/sort-array-converting-elements-squares/ 15.18. ShortestUnsortedSubArray https://leetcode.com/problems/shortest-unsorted-continuous-subarray/ https://www.geeksforgeeks.org/minimum-length-unsorted-subarray-sorting-which-makes-the-complete-array-sorted/ 16. Bit Manipulation 16.1. CountSetBits https://www.geeksforgeeks.org/count-set-bits-in-an-integer/ 16.2. NumberWithOddOccurance https://www.geeksforgeeks.org/find-the-number-occurring-odd-number-of-times/ 16.3. CheckBleak https://www.geeksforgeeks.org/check-if-a-number-is-bleak/ 16.4. CopySetBits https://www.geeksforgeeks.org/copy-set-bits-in-a-range/ 16.5. IsMultipleOf3 https://www.geeksforgeeks.org/write-an-efficient-method-to-check-if-a-number-is-multiple-of-3/ 16.6. PositionOfOnlySetBit https://www.geeksforgeeks.org/find-position-of-the-only-set-bit/ 16.7. BinaryRepresentation https://www.geeksforgeeks.org/binary-representation-of-a-given-number/ 16.8. ReverseBitsOfANumberC https://www.geeksforgeeks.org/write-an-efficient-c-program-to-reverse-bits-of-a-number/ 16.9. CountBitsToBeFlippedForAToB https://www.geeksforgeeks.org/count-number-of-bits-to-be-flipped-to-convert-a-to-b/ 16.10. FindTwoNonRepeating https://www.geeksforgeeks.org/find-two-non-repeating-elements-in-an-array-of-repeating-elements/ 16.11. CheckReverseSubarraySort https://www.geeksforgeeks.org/sort-an-array-where-a-subarray-of-a-sorted-array-is-in-reverse-order/ https://www.geeksforgeeks.org/sort-an-array-where-a-subarray-of-a-sorted-array-is-in-reverse-order/ 16.12. InsertInSortedNonOcerlapingInterval https://www.geeksforgeeks.org/insert-in-sorted-and-non-overlapping-interval-array/ 16.13. ProductArrayPuzzle https://www.geeksforgeeks.org/a-product-array-puzzle/ https://leetcode.com/problems/product-of-array-except-self/ 16.14. FindDuplicatesEfficient https://www.geeksforgeeks.org/find-duplicates-in-on-time-and-constant-extra-space/ 16.15. IsSudokuValid done https://leetcode.com/problems/valid-sudoku/ 16.16. UncommonCharacters https://www.geeksforgeeks.org/find-uncommon-characters-of-the-two-strings-set-2/ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- https://leetcode.com/problems/happy-number/ https://www.geeksforgeeks.org/height-complete-binary-tree-heap-n-nodes/ https://leetcode.com/problems/magic-squares-in-grid/ https://leetcode.com/problems/max-chunks-to-make-sorted-ii/ https://cheonhyangzhang.gitbooks.io/leetcode-solutions/content/solutions-451-500/487-max-consecutive-ones-ii.html