# azhan1830/leet-code architecture

> Architecture diagram of the GitHub repository azhan1830/leet-code, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/azhan1830/leet-code
- Repository: https://github.com/azhan1830/leet-code

## Overview

This repository is a collection of standalone Java solutions to LeetCode problems, intended for interview practice rather than as one integrated application. The principal workflow is to choose a problem, provide its inputs to that problem’s Solution method, and receive its result. The files cover array processing, searching, strings, and numeric problems; each implements its own algorithm, with no shared runtime or storage layer evident in the tree. The graph shows representative solutions; the README and sampled source support these capabilities, but do not establish calls between solutions.

Main entry points: [`0015-3sum/0015-3sum.java`](https://github.com/azhan1830/leet-code/blob/main/0015-3sum/0015-3sum.java) (Three sum), [`0018-4sum/0018-4sum.java`](https://github.com/azhan1830/leet-code/blob/main/0018-4sum/0018-4sum.java) (Four sum), [`0643-maximum-average-subarray-i/0643-maximum-average-subarray-i.java`](https://github.com/azhan1830/leet-code/blob/main/0643-maximum-average-subarray-i/0643-maximum-average-subarray-i.java) (Max subarray average), [`0704-binary-search/0704-binary-search.java`](https://github.com/azhan1830/leet-code/blob/main/0704-binary-search/0704-binary-search.java) (Binary search)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_arrays["Array algorithms"]
  node_three_sum["Three sum<br/>[0015-3sum.java]"]
  node_four_sum["Four sum<br/>[0018-4sum.java]"]
  node_max_average["Max subarray average"]
end

subgraph group_search["Searching"]
  node_binary_search["Binary search"]
  node_search_insert["Search insert position"]
  node_rotated_search["Rotated-array search"]
  node_rotated_search_duplicates["Rotated search with duplicates"]
  node_matrix_search["Matrix search"]
  node_matrix_row_search["Row-wise matrix search"]
  node_peak_search["Peak finding"]
  node_mountain_peak["Mountain peak"]
end

subgraph group_strings["String problems"]
  node_min_window["Minimum window"]
end

subgraph group_numeric["Numeric problems"]
  node_reverse_integer["Reverse integer"]
  node_fibonacci["Fibonacci number"]
end

node_solver(("Problem solver"))

node_solver -->|"invokes"| node_three_sum
node_three_sum -->|"returns result"| node_solver
node_solver -->|"invokes"| node_four_sum
node_four_sum -->|"returns result"| node_solver
node_solver -->|"invokes"| node_max_average
node_max_average -->|"returns result"| node_solver
node_solver -->|"invokes"| node_min_window
node_min_window -->|"returns result"| node_solver
node_solver -->|"invokes"| node_binary_search
node_binary_search -->|"returns result"| node_solver
node_solver -->|"invokes"| node_search_insert
node_search_insert -->|"returns result"| node_solver
node_solver -->|"invokes"| node_rotated_search
node_rotated_search -->|"returns result"| node_solver
node_solver -->|"invokes"| node_rotated_search_duplicates
node_rotated_search_duplicates -->|"returns result"| node_solver
node_solver -->|"invokes"| node_matrix_search
node_matrix_search -->|"returns result"| node_solver
node_solver -->|"invokes"| node_matrix_row_search
node_matrix_row_search -->|"returns result"| node_solver
node_solver -->|"invokes"| node_peak_search
node_peak_search -->|"returns result"| node_solver
node_solver -->|"invokes"| node_mountain_peak
node_mountain_peak -->|"returns result"| node_solver
node_solver -->|"invokes"| node_reverse_integer
node_reverse_integer -->|"returns result"| node_solver
node_solver -->|"invokes"| node_fibonacci
node_fibonacci -->|"returns result"| node_solver

click node_three_sum "https://github.com/azhan1830/leet-code/blob/main/0015-3sum/0015-3sum.java"
click node_four_sum "https://github.com/azhan1830/leet-code/blob/main/0018-4sum/0018-4sum.java"
click node_max_average "https://github.com/azhan1830/leet-code/blob/main/0643-maximum-average-subarray-i/0643-maximum-average-subarray-i.java"
click node_min_window "https://github.com/azhan1830/leet-code/blob/main/0076-minimum-window-substring/0076-minimum-window-substring.java"
click node_binary_search "https://github.com/azhan1830/leet-code/blob/main/0704-binary-search/0704-binary-search.java"
click node_search_insert "https://github.com/azhan1830/leet-code/blob/main/0035-search-insert-position/0035-search-insert-position.java"
click node_rotated_search "https://github.com/azhan1830/leet-code/blob/main/0033-search-in-rotated-sorted-array/0033-search-in-rotated-sorted-array.java"
click node_rotated_search_duplicates "https://github.com/azhan1830/leet-code/blob/main/0081-search-in-rotated-sorted-array-ii/0081-search-in-rotated-sorted-array-ii.java"
click node_matrix_search "https://github.com/azhan1830/leet-code/blob/main/0074-search-a-2d-matrix/0074-search-a-2d-matrix.java"
click node_matrix_row_search "https://github.com/azhan1830/leet-code/blob/main/0240-search-a-2d-matrix-ii/0240-search-a-2d-matrix-ii.java"
click node_peak_search "https://github.com/azhan1830/leet-code/blob/main/0162-find-peak-element/0162-find-peak-element.java"
click node_mountain_peak "https://github.com/azhan1830/leet-code/blob/main/0852-peak-index-in-a-mountain-array/0852-peak-index-in-a-mountain-array.java"
click node_reverse_integer "https://github.com/azhan1830/leet-code/blob/main/0007-reverse-integer/0007-reverse-integer.java"
click node_fibonacci "https://github.com/azhan1830/leet-code/blob/main/0509-fibonacci-number/0509-fibonacci-number.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_three_sum,node_four_sum,node_max_average toneBlue
class node_binary_search,node_search_insert,node_rotated_search,node_rotated_search_duplicates,node_matrix_search,node_matrix_row_search,node_peak_search,node_mountain_peak toneAmber
class node_min_window toneMint
class node_reverse_integer,node_fibonacci toneRose
class node_solver toneIndigo
```

## Components

### Array algorithms

- [Three sum](https://github.com/azhan1830/leet-code/blob/main/0015-3sum/0015-3sum.java): `0015-3sum/0015-3sum.java`
- [Four sum](https://github.com/azhan1830/leet-code/blob/main/0018-4sum/0018-4sum.java): `0018-4sum/0018-4sum.java`
- [Max subarray average](https://github.com/azhan1830/leet-code/blob/main/0643-maximum-average-subarray-i/0643-maximum-average-subarray-i.java): `0643-maximum-average-subarray-i/0643-maximum-average-subarray-i.java`

### Searching

- [Binary search](https://github.com/azhan1830/leet-code/blob/main/0704-binary-search/0704-binary-search.java): `0704-binary-search/0704-binary-search.java`
- [Search insert position](https://github.com/azhan1830/leet-code/blob/main/0035-search-insert-position/0035-search-insert-position.java): `0035-search-insert-position/0035-search-insert-position.java`
- [Rotated-array search](https://github.com/azhan1830/leet-code/blob/main/0033-search-in-rotated-sorted-array/0033-search-in-rotated-sorted-array.java): `0033-search-in-rotated-sorted-array/0033-search-in-rotated-sorted-array.java`
- [Rotated search with duplicates](https://github.com/azhan1830/leet-code/blob/main/0081-search-in-rotated-sorted-array-ii/0081-search-in-rotated-sorted-array-ii.java): `0081-search-in-rotated-sorted-array-ii/0081-search-in-rotated-sorted-array-ii.java`
- [Matrix search](https://github.com/azhan1830/leet-code/blob/main/0074-search-a-2d-matrix/0074-search-a-2d-matrix.java): `0074-search-a-2d-matrix/0074-search-a-2d-matrix.java`
- [Row-wise matrix search](https://github.com/azhan1830/leet-code/blob/main/0240-search-a-2d-matrix-ii/0240-search-a-2d-matrix-ii.java): `0240-search-a-2d-matrix-ii/0240-search-a-2d-matrix-ii.java`
- [Peak finding](https://github.com/azhan1830/leet-code/blob/main/0162-find-peak-element/0162-find-peak-element.java): `0162-find-peak-element/0162-find-peak-element.java`
- [Mountain peak](https://github.com/azhan1830/leet-code/blob/main/0852-peak-index-in-a-mountain-array/0852-peak-index-in-a-mountain-array.java): `0852-peak-index-in-a-mountain-array/0852-peak-index-in-a-mountain-array.java`

### String problems

- [Minimum window](https://github.com/azhan1830/leet-code/blob/main/0076-minimum-window-substring/0076-minimum-window-substring.java): `0076-minimum-window-substring/0076-minimum-window-substring.java`

### Numeric problems

- [Reverse integer](https://github.com/azhan1830/leet-code/blob/main/0007-reverse-integer/0007-reverse-integer.java): `0007-reverse-integer/0007-reverse-integer.java`
- [Fibonacci number](https://github.com/azhan1830/leet-code/blob/main/0509-fibonacci-number/0509-fibonacci-number.java): `0509-fibonacci-number/0509-fibonacci-number.java`

### Other components

- **Problem solver**

## Connections

- Problem solver → Three sum: invokes
- Three sum → Problem solver: returns result
- Problem solver → Four sum: invokes
- Four sum → Problem solver: returns result
- Problem solver → Max subarray average: invokes
- Max subarray average → Problem solver: returns result
- Problem solver → Minimum window: invokes
- Minimum window → Problem solver: returns result
- Problem solver → Binary search: invokes
- Binary search → Problem solver: returns result
- Problem solver → Search insert position: invokes
- Search insert position → Problem solver: returns result
- Problem solver → Rotated-array search: invokes
- Rotated-array search → Problem solver: returns result
- Problem solver → Rotated search with duplicates: invokes
- Rotated search with duplicates → Problem solver: returns result
- Problem solver → Matrix search: invokes
- Matrix search → Problem solver: returns result
- Problem solver → Row-wise matrix search: invokes
- Row-wise matrix search → Problem solver: returns result
- Problem solver → Peak finding: invokes
- Peak finding → Problem solver: returns result
- Problem solver → Mountain peak: invokes
- Mountain peak → Problem solver: returns result
- Problem solver → Reverse integer: invokes
- Reverse integer → Problem solver: returns result
- Problem solver → Fibonacci number: invokes
- Fibonacci number → Problem solver: returns result
