.
└── com
└── omtlab
└── algorithmrecipe
├── App.java
├── array
│ ├── GFGFindFirstDuplicate.java
│ ├── LC13.java
│ ├── LC238.java
│ ├── LC299.java
│ ├── LC334.java
│ ├── LC670.java
│ ├── LC674.java
│ ├── LC75.java
│ ├── LC825.java
│ ├── LC896.java
│ ├── LC953.java
│ ├── continuous
│ │ └── LC560.java
│ ├── evenodd
│ │ └── LC280.java
│ ├── map
│ │ ├── LC398.java
│ │ ├── LC554.java
│ │ ├── LC846.java
│ │ └── count
│ │ ├── LC2007.java
│ │ └── LC954.java
│ └── sumarray
│ ├── GFGFindPairForSum.java
│ ├── LC121.java
│ ├── LC1477.java
│ ├── LC325.java
│ ├── LC523.java
│ ├── LC560.java
│ ├── LC636.java
│ └── package-info.java
├── backtracking
│ ├── LC17.java
│ ├── LC200Copy.java
│ ├── LC282.java
│ ├── LC39Copy.java
│ ├── LC464.java
│ ├── LC51.java
│ ├── LC78.java
│ ├── LC79.java
│ └── LC90.java
├── binarysearch
│ ├── LC15.java
│ ├── LC162.java
│ ├── LC278.java
│ ├── LC375.java
│ ├── LC410.java
│ ├── LC50.java
│ ├── LC528.java
│ ├── LC69.java
│ ├── LC875.java
│ └── rotated
│ ├── LC153.java
│ ├── LC154.java
│ ├── LC33.java
│ └── LC81.java
├── bit
│ ├── GFGTwoNumOddTimes.java
│ ├── GetBitAtPosition.java
│ ├── LC191.java
│ ├── LC461.java
│ ├── LC477.java
│ ├── LC540.java
│ ├── MoveBitLeft.java
│ ├── MoveBitRight.java
│ └── XOR.java
├── common
│ ├── graph
│ │ ├── Edge.java
│ │ ├── Graph.java
│ │ ├── Node.java
│ │ └── State.java
│ ├── model
│ │ └── KeyValueImpl.java
│ ├── node
│ │ ├── LinkNode.java
│ │ ├── TreeNode.java
│ │ └── TrieNode.java
│ └── util
│ ├── MatrixUtil.java
│ ├── NodeUtil.java
│ ├── Pair.java
│ └── TreeUtil.java
├── design
│ └── using
│ ├── list
│ │ └── LC380.java
│ ├── map
│ │ ├── LC1146.java
│ │ ├── LC1146StringKey.java
│ │ ├── LC380.java
│ │ └── LC588.java
│ └── set
│ └── LC1348.java
├── divideandconquer
│ └── LC23.java
├── dp
│ ├── matrix
│ │ ├── GFGLargestAreaHistogram.java
│ │ ├── GFGWordWrapProblem.java
│ │ ├── LC221.java
│ │ ├── LC68.java
│ │ ├── LC727.java
│ │ ├── LC84.java
│ │ ├── LC85.java
│ │ └── startwithzero
│ │ ├── GFGEditDistance.java
│ │ ├── LC10.java
│ │ ├── LC188.java
│ │ ├── LC322.java
│ │ ├── LC377.java
│ │ └── LC647.java
│ └── singlearray
│ ├── LC198.java
│ ├── LC43.java
│ ├── LC689.java
│ ├── LC91.java
│ ├── hardtounderstand
│ │ └── LC714.java
│ └── startwithzero
│ ├── LC139.java
│ ├── LC494.java
│ ├── LC639.java
│ └── LC91Copy.java
├── finduniondisjoinset
│ ├── GFGFindCycleInGraphUnionFindPathComp.java
│ ├── LC721.java
│ └── LC785.java
├── greedy
│ ├── GFGMinNoofPlatformsRequired.java
│ ├── GFGMinNoofPlatformsRequiredUsingMap.java
│ ├── LC218.java
│ ├── LC253.java
│ ├── LC253UsingMap.java
│ ├── LC56.java
│ ├── LC57.java
│ ├── LC715.java
│ └── LC759.java
├── iterator
│ ├── list
│ │ ├── LC251.java
│ │ └── LC341.java
│ └── tree
│ └── LC173_Copy.java
├── linkedlist
│ ├── LC146.java
│ ├── LC206.java
│ ├── LC359.java
│ └── LC430.java
├── math
│ ├── LC1088.java
│ ├── LC166.java
│ ├── LC204.java
│ ├── LC273.java
│ ├── LC681.java
│ └── LC68_Again.java
├── matrix
│ ├── LC2128.java
│ └── bfs
│ ├── GFGShortDistMrx.java
│ ├── LC1293Queue.java
│ ├── LC1293WrongSolution.java
│ ├── LC200.java
│ ├── LC286.java
│ └── LC419.java
├── minimax
│ └── LC843.java
├── priorityqueue
│ ├── LC1090.java
│ ├── LC218.java
│ ├── LC295.java
│ ├── LC332.java
│ └── LC621.java
├── quicksort
│ ├── KthSmalletsElement.java
│ ├── LC215.java
│ ├── LC324.java
│ └── LC973.java
├── recursion
│ ├── LC198.java
│ ├── LC301.java
│ ├── LC39.java
│ ├── LC494.java
│ ├── TowerOfHanoi.java
│ └── map
│ └── LC377.java
├── set
│ ├── LC128.java
│ └── SubSetExample.java
├── slidingwindow
│ ├── LC1248.java
│ ├── LC1477.java
│ ├── LC438.java
│ ├── LC904.java
│ ├── LC992.java
│ └── deque
│ ├── LC1438.java
│ ├── LC239.java
│ └── LC904.java
├── sortingalgorithms
│ ├── BucketSort.java
│ └── Quicksort.java
├── stack
│ ├── GFGLargestAreaHistogram.java
│ ├── LC150.java
│ ├── LC20.java
│ ├── LC277.java
│ ├── LC71.java
│ ├── LC946.java
│ └── LC98.java
├── string
│ ├── LC1055.java
│ ├── LC28.java
│ ├── LC294.java
│ ├── LC38.java
│ ├── LC387.java
│ ├── LC647.java
│ ├── LC809.java
│ ├── LC833.java
│ └── map
│ ├── GFGAnagramSubstringSearch.java
│ ├── LC1153.java
│ ├── LC1153UnusedChar.java
│ ├── LC1166.java
│ ├── LC336.java
│ ├── LC49.java
│ └── LC49Prime.java
├── swapinputs
│ └── LC1007.java
├── tree
│ ├── bfs
│ │ ├── LC101.java
│ │ ├── LC102.java
│ │ ├── LC127.java
│ │ ├── LC133.java
│ │ ├── LC199.java
│ │ ├── LC226.java
│ │ ├── LC297.java
│ │ ├── LC314.java
│ │ └── LC773.java
│ ├── dfs
│ │ ├── LC1377.java
│ │ ├── LC332_Copy.java
│ │ ├── LC366.java
│ │ ├── LC690.java
│ │ ├── LC753.java
│ │ └── LC756.java
│ ├── dijkstra
│ │ ├── GFGShortestPath.java
│ │ └── LC787.java
│ ├── inorder
│ │ ├── LC102.java
│ │ ├── LC1110.java
│ │ ├── LC117.java
│ │ ├── LC1376.java
│ │ ├── LC173.java
│ │ ├── LC2096.java
│ │ ├── LC235.java
│ │ ├── LC236.java
│ │ ├── LC285.java
│ │ ├── LC298.java
│ │ ├── LC426.java
│ │ └── LC98.java
│ ├── postorder
│ │ └── LC226.java
│ ├── preorder
│ │ ├── LC124.java
│ │ ├── LC404.java
│ │ └── LC572.java
│ └── topological
│ ├── LC269.java
│ └── LC953.java
├── trie
│ ├── LC211.java
│ └── LC642.java
└── twopointer
├── GenerateTree.java
├── LC125.java
├── LC1423.java
├── LC15.java
├── LC161.java
├── LC209.java
├── LC42.java
├── LC5.java
├── LC647.java
├── LC680.java
├── LC727.java
├── LC755.java
├── LC76.java
├── LC860.java
├── LC88.java
└── LC977.java