# vaibhavsirana8474/d.s.a-questions architecture

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

- Interactive diagram: https://gitdiagram.com/vaibhavsirana8474/d.s.a-questions
- Repository: https://github.com/vaibhavsirana8474/d.s.a-questions

## Overview

This repository is a collection of independent Java solutions to algorithm and programming exercises, not a single application. The workflow is a caller supplying inputs to one solution method and receiving its result; there is no shared runtime orchestrator or storage layer. The graph groups representative solutions by problem domain. The README provides no further product details, and sampled source confirms several standalone methods; other listed solutions are represented by their paths and names, not inspected implementations.

Main entry points: [`792-binary-search/binary-search.java`](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/792-binary-search/binary-search.java) (Binary Search), [`1019-squares-of-a-sorted-array/squares-of-a-sorted-array.java`](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/1019-squares-of-a-sorted-array/squares-of-a-sorted-array.java) (Sorted Squares), [`238-product-of-array-except-self/product-of-array-except-self.java`](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/238-product-of-array-except-self/product-of-array-except-self.java) (Product Except Self), [`283-move-zeroes/move-zeroes.java`](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/283-move-zeroes/move-zeroes.java) (Move Zeroes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_arrays["Array Algorithms"]
  node_binary_search["Binary Search<br/>[binary-search.java]"]
  node_sorted_squares["Sorted Squares"]
  node_product_except_self["Product Except Self"]
  node_move_zeroes["Move Zeroes<br/>[move-zeroes.java]"]
  node_intersection["Array Intersection"]
  node_max_subarray["Maximum Subarray"]
  node_running_sum["Running Sum"]
  node_consecutive_ones["Consecutive Ones"]
end

subgraph group_matrices["Matrix Algorithms"]
  node_rotate_image["Rotate Image<br/>[rotate-image.java]"]
  node_flip_image["Flip And Invert"]
  node_transpose["Transpose Matrix"]
  node_diagonal_sum["Diagonal Sum"]
end

subgraph group_numeric["Numeric Problems"]
  node_fibonacci["Fibonacci Number"]
  node_add_digits["Add Digits<br/>[add-digits.java]"]
  node_gcd["GCD Of Two<br/>[gcd-of-two.java]"]
  node_count_squares["Count Perfect Squares"]
  node_celsius["Celsius Conversion"]
end

subgraph group_sequences["Sequences And Patterns"]
  node_pascal["Pascal Triangle"]
  node_climbing_stairs["Climbing Stairs"]
  node_fizz_buzz["Fizz Buzz<br/>[fizz-buzz.java]"]
  node_diamond["Diamond Pattern"]
  node_armstrong["Armstrong Numbers"]
end

node_caller(("Caller / Judge"))

node_caller -->|"invokes"| node_binary_search
node_binary_search -->|"returns index"| node_caller
node_caller -->|"invokes"| node_sorted_squares
node_sorted_squares -->|"returns array"| node_caller
node_caller -->|"invokes"| node_product_except_self
node_product_except_self -->|"returns array"| node_caller
node_caller -->|"invokes"| node_move_zeroes
node_move_zeroes -->|"updates input"| node_caller
node_caller -->|"invokes"| node_intersection
node_intersection -->|"returns array"| node_caller
node_caller -->|"invokes"| node_max_subarray
node_max_subarray -->|"returns sum"| node_caller
node_caller -->|"invokes"| node_running_sum
node_running_sum -->|"returns array"| node_caller
node_caller -->|"invokes"| node_consecutive_ones
node_consecutive_ones -->|"returns count"| node_caller
node_caller -->|"invokes"| node_rotate_image
node_rotate_image -->|"updates matrix"| node_caller
node_caller -->|"invokes"| node_flip_image
node_flip_image -->|"returns matrix"| node_caller
node_caller -->|"invokes"| node_transpose
node_transpose -->|"returns matrix"| node_caller
node_caller -->|"invokes"| node_diagonal_sum
node_diagonal_sum -->|"returns sum"| node_caller
node_caller -->|"invokes"| node_fibonacci
node_fibonacci -->|"returns number"| node_caller
node_caller -->|"invokes"| node_add_digits
node_add_digits -->|"returns number"| node_caller
node_caller -->|"invokes"| node_gcd
node_gcd -->|"returns divisor"| node_caller
node_caller -->|"invokes"| node_count_squares
node_count_squares -->|"returns count"| node_caller
node_caller -->|"invokes"| node_celsius
node_celsius -->|"returns temperature"| node_caller
node_caller -->|"invokes"| node_pascal
node_pascal -->|"returns triangle"| node_caller
node_caller -->|"invokes"| node_climbing_stairs
node_climbing_stairs -->|"returns count"| node_caller
node_caller -->|"invokes"| node_fizz_buzz
node_fizz_buzz -->|"returns list"| node_caller
node_caller -->|"invokes"| node_diamond
node_diamond -->|"prints pattern"| node_caller
node_caller -->|"invokes"| node_armstrong
node_armstrong -->|"returns result"| node_caller

click node_binary_search "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/792-binary-search/binary-search.java"
click node_sorted_squares "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/1019-squares-of-a-sorted-array/squares-of-a-sorted-array.java"
click node_product_except_self "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/238-product-of-array-except-self/product-of-array-except-self.java"
click node_move_zeroes "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/283-move-zeroes/move-zeroes.java"
click node_intersection "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/350-intersection-of-two-arrays-ii/intersection-of-two-arrays-ii.java"
click node_max_subarray "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/53-maximum-subarray/maximum-subarray.java"
click node_running_sum "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/1603-running-sum-of-1d-array/running-sum-of-1d-array.java"
click node_consecutive_ones "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/485-max-consecutive-ones/max-consecutive-ones.java"
click node_rotate_image "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/48-rotate-image/rotate-image.java"
click node_flip_image "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/861-flipping-an-image/flipping-an-image.java"
click node_transpose "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/898-transpose-matrix/transpose-matrix.java"
click node_diagonal_sum "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/1677-matrix-diagonal-sum/matrix-diagonal-sum.java"
click node_fibonacci "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/1013-fibonacci-number/fibonacci-number.java"
click node_add_digits "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/258-add-digits/add-digits.java"
click node_gcd "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/Difficulty%3A%20Basic/GCD%20of%20Two/gcd-of-two.java"
click node_count_squares "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/Difficulty%3A%20Basic/Count%20Perfect%20Squares/count-perfect-squares.java"
click node_celsius "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/Difficulty%3A%20Basic/Convert%20Celsius%20To%20Fahrenheit/convert-celsius-to-fahrenheit.java"
click node_pascal "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/118-pascals-triangle/pascals-triangle.java"
click node_climbing_stairs "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/70-climbing-stairs/climbing-stairs.java"
click node_fizz_buzz "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/412-fizz-buzz/fizz-buzz.java"
click node_diamond "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/Difficulty%3A%20Basic/Diamond%20Shape%20Pattern/diamond-shape-pattern.java"
click node_armstrong "https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/Difficulty%3A%20Easy/Armstrong%20Numbers/armstrong-numbers.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_binary_search,node_sorted_squares,node_product_except_self,node_move_zeroes,node_intersection,node_max_subarray,node_running_sum,node_consecutive_ones toneBlue
class node_rotate_image,node_flip_image,node_transpose,node_diagonal_sum toneAmber
class node_fibonacci,node_add_digits,node_gcd,node_count_squares,node_celsius toneMint
class node_pascal,node_climbing_stairs,node_fizz_buzz,node_diamond,node_armstrong toneRose
class node_caller toneIndigo
```

## Components

### Array Algorithms

- [Binary Search](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/792-binary-search/binary-search.java): `792-binary-search/binary-search.java`
- [Sorted Squares](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/1019-squares-of-a-sorted-array/squares-of-a-sorted-array.java): `1019-squares-of-a-sorted-array/squares-of-a-sorted-array.java`
- [Product Except Self](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/238-product-of-array-except-self/product-of-array-except-self.java): `238-product-of-array-except-self/product-of-array-except-self.java`
- [Move Zeroes](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/283-move-zeroes/move-zeroes.java): `283-move-zeroes/move-zeroes.java`
- [Array Intersection](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/350-intersection-of-two-arrays-ii/intersection-of-two-arrays-ii.java): `350-intersection-of-two-arrays-ii/intersection-of-two-arrays-ii.java`
- [Maximum Subarray](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/53-maximum-subarray/maximum-subarray.java): `53-maximum-subarray/maximum-subarray.java`
- [Running Sum](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/1603-running-sum-of-1d-array/running-sum-of-1d-array.java): `1603-running-sum-of-1d-array/running-sum-of-1d-array.java`
- [Consecutive Ones](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/485-max-consecutive-ones/max-consecutive-ones.java): `485-max-consecutive-ones/max-consecutive-ones.java`

### Matrix Algorithms

- [Rotate Image](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/48-rotate-image/rotate-image.java): `48-rotate-image/rotate-image.java`
- [Flip And Invert](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/861-flipping-an-image/flipping-an-image.java): `861-flipping-an-image/flipping-an-image.java`
- [Transpose Matrix](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/898-transpose-matrix/transpose-matrix.java): `898-transpose-matrix/transpose-matrix.java`
- [Diagonal Sum](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/1677-matrix-diagonal-sum/matrix-diagonal-sum.java): `1677-matrix-diagonal-sum/matrix-diagonal-sum.java`

### Numeric Problems

- [Fibonacci Number](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/1013-fibonacci-number/fibonacci-number.java): `1013-fibonacci-number/fibonacci-number.java`
- [Add Digits](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/258-add-digits/add-digits.java): `258-add-digits/add-digits.java`
- [GCD Of Two](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/Difficulty%3A%20Basic/GCD%20of%20Two/gcd-of-two.java): `Difficulty: Basic/GCD of Two/gcd-of-two.java`
- [Count Perfect Squares](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/Difficulty%3A%20Basic/Count%20Perfect%20Squares/count-perfect-squares.java): `Difficulty: Basic/Count Perfect Squares/count-perfect-squares.java`
- [Celsius Conversion](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/Difficulty%3A%20Basic/Convert%20Celsius%20To%20Fahrenheit/convert-celsius-to-fahrenheit.java): `Difficulty: Basic/Convert Celsius To Fahrenheit/convert-celsius-to-fahrenheit.java`

### Sequences And Patterns

- [Pascal Triangle](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/118-pascals-triangle/pascals-triangle.java): `118-pascals-triangle/pascals-triangle.java`
- [Climbing Stairs](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/70-climbing-stairs/climbing-stairs.java): `70-climbing-stairs/climbing-stairs.java`
- [Fizz Buzz](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/412-fizz-buzz/fizz-buzz.java): `412-fizz-buzz/fizz-buzz.java`
- [Diamond Pattern](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/Difficulty%3A%20Basic/Diamond%20Shape%20Pattern/diamond-shape-pattern.java): `Difficulty: Basic/Diamond Shape Pattern/diamond-shape-pattern.java`
- [Armstrong Numbers](https://github.com/vaibhavsirana8474/d.s.a-questions/blob/main/Difficulty%3A%20Easy/Armstrong%20Numbers/armstrong-numbers.java): `Difficulty: Easy/Armstrong Numbers/armstrong-numbers.java`

### Other components

- **Caller / Judge**

## Connections

- Caller / Judge → Binary Search: invokes
- Binary Search → Caller / Judge: returns index
- Caller / Judge → Sorted Squares: invokes
- Sorted Squares → Caller / Judge: returns array
- Caller / Judge → Product Except Self: invokes
- Product Except Self → Caller / Judge: returns array
- Caller / Judge → Move Zeroes: invokes
- Move Zeroes → Caller / Judge: updates input
- Caller / Judge → Array Intersection: invokes
- Array Intersection → Caller / Judge: returns array
- Caller / Judge → Maximum Subarray: invokes
- Maximum Subarray → Caller / Judge: returns sum
- Caller / Judge → Running Sum: invokes
- Running Sum → Caller / Judge: returns array
- Caller / Judge → Consecutive Ones: invokes
- Consecutive Ones → Caller / Judge: returns count
- Caller / Judge → Rotate Image: invokes
- Rotate Image → Caller / Judge: updates matrix
- Caller / Judge → Flip And Invert: invokes
- Flip And Invert → Caller / Judge: returns matrix
- Caller / Judge → Transpose Matrix: invokes
- Transpose Matrix → Caller / Judge: returns matrix
- Caller / Judge → Diagonal Sum: invokes
- Diagonal Sum → Caller / Judge: returns sum
- Caller / Judge → Fibonacci Number: invokes
- Fibonacci Number → Caller / Judge: returns number
- Caller / Judge → Add Digits: invokes
- Add Digits → Caller / Judge: returns number
- Caller / Judge → GCD Of Two: invokes
- GCD Of Two → Caller / Judge: returns divisor
- Caller / Judge → Count Perfect Squares: invokes
- Count Perfect Squares → Caller / Judge: returns count
- Caller / Judge → Celsius Conversion: invokes
- Celsius Conversion → Caller / Judge: returns temperature
- Caller / Judge → Pascal Triangle: invokes
- Pascal Triangle → Caller / Judge: returns triangle
- Caller / Judge → Climbing Stairs: invokes
- Climbing Stairs → Caller / Judge: returns count
- Caller / Judge → Fizz Buzz: invokes
- Fizz Buzz → Caller / Judge: returns list
- Caller / Judge → Diamond Pattern: invokes
- Diamond Pattern → Caller / Judge: prints pattern
- Caller / Judge → Armstrong Numbers: invokes
- Armstrong Numbers → Caller / Judge: returns result
