BST LIS MOD array backtracking bfs binary search binary search on answer bit manipulation brainteaser bst bucket sort counting sort design devops dfs dijkstra dynamic programming enumeration flood fill gcd graph greedy hashmap heap inorder java javascript knapsack leetcode line sweep linked list math matrix memorization merge sort monotonic stack n-ary tree palindrome permutation postorder prefix sum preorder queue quick sort recursion selection sort simulation sliding window sliding window with fixed size sort stack string topological sort tree treemap trie two pointer two sum union find