Right Triangle
class Solution {
public void printRightTriangle(int n) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) System.out.print("* ");
System.out.println();
}
}
}class Solution:
def printRightTriangle(self, n: int) -> None:
for i in range(1, n + 1):
for j in range(1, i + 1):
print("* ", end="")
print()*
* *
* * *
* * * *
* * * * *| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): Row 1: print 1 star. Row 2: print 2 stars. Row 3: print 3 stars.
Inverted Right Triangle
class Solution {
public void printInvertedRightTriangle(int n) {
for (int i = n; i >= 1; i--) {
for (int j = 1; j <= i; j++) System.out.print("* ");
System.out.println();
}
}
}class Solution:
def printInvertedRightTriangle(self, n: int) -> None:
for i in range(n, 0, -1):
for j in range(1, i + 1):
print("* ", end="")
print()* * * * *
* * * *
* * *
* *
*| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): Row 1: print 3 stars. Row 2: print 2 stars. Row 3: print 1 star.
Left Triangle
class Solution {
public void printLeftTriangle(int n) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) System.out.print(" ");
for (int k = 1; k <= i; k++) System.out.print("* ");
System.out.println();
}
}
}class Solution:
def printLeftTriangle(self, n: int) -> None:
for i in range(1, n + 1):
for j in range(1, n - i + 1):
print(" ", end="")
for k in range(1, i + 1):
print("* ", end="")
print() *
* *
* * *
* * * *
* * * * *| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): Row 1: 2 spaces + 1 star. Row 2: 1 space + 2 stars. Row 3: 0 spaces + 3 stars.
Pyramid
class Solution {
public void printPyramid(int n) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) System.out.print(" ");
for (int k = 1; k <= 2 * i - 1; k++) System.out.print("*");
System.out.println();
}
}
}class Solution:
def printPyramid(self, n: int) -> None:
for i in range(1, n + 1):
for j in range(1, n - i + 1):
print(" ", end="")
for k in range(1, 2 * i):
print("*", end="")
print() *
***
*****
*******
*********| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): Row 1: 2 spaces + 1 star. Row 2: 1 space + 3 stars. Row 3: 0 spaces + 5 stars.
Inverted Pyramid
class Solution {
public void printInvertedPyramid(int n) {
for (int i = n; i >= 1; i--) {
for (int j = 1; j <= n - i; j++) System.out.print(" ");
for (int k = 1; k <= 2 * i - 1; k++) System.out.print("*");
System.out.println();
}
}
}class Solution:
def printInvertedPyramid(self, n: int) -> None:
for i in range(n, 0, -1):
for j in range(1, n - i + 1):
print(" ", end="")
for k in range(1, 2 * i):
print("*", end="")
print()*********
*******
*****
***
*| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): Row 1: 0 spaces + 5 stars. Row 2: 1 space + 3 stars. Row 3: 2 spaces + 1 star.
Diamond
class Solution {
public void printDiamond(int n) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) System.out.print(" ");
for (int k = 1; k <= 2 * i - 1; k++) System.out.print("*");
System.out.println();
}
for (int i = n - 1; i >= 1; i--) {
for (int j = 1; j <= n - i; j++) System.out.print(" ");
for (int k = 1; k <= 2 * i - 1; k++) System.out.print("*");
System.out.println();
}
}
}class Solution:
def printDiamond(self, n: int) -> None:
for i in range(1, n + 1):
for j in range(1, n - i + 1):
print(" ", end="")
for k in range(1, 2 * i):
print("*", end="")
print()
for i in range(n - 1, 0, -1):
for j in range(1, n - i + 1):
print(" ", end="")
for k in range(1, 2 * i):
print("*", end="")
print() *
***
*****
*******
*********
*******
*****
***
*| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): Upper half (Pyramid for n=3) + Lower half (Inverted Pyramid for n-1=2).
Opposite Zero and One
class Main {
public static void main(String[] args) {
int n = 4;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
System.out.print((i + j) % 2 + " ");
}
System.out.println();
}
}
}class Main:
def main(self):
n = 4
for i in range(1, n + 1):
for j in range(1, i + 1):
print(f"{(i + j) % 2} ", end="")
print()0
1 0
0 1 0
1 0 1 0| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): Row 1: (1+1)%2=0. Row 2: (2+1)%2=1, (2+2)%2=0. Row 3: (3+1)%2=0, (3+2)%2=1, (3+3)%2=0.
Diagonal Cross (Both Diagonals)
class Main {
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == j || i + j == n + 1) System.out.print("* ");
else System.out.print(" ");
}
System.out.println();
}
}
}class Main:
def main(self):
n = 5
for i in range(1, n + 1):
for j in range(1, n + 1):
if i == j or i + j == n + 1:
print("* ", end="")
else:
print(" ", end="")
print()* *
* *
*
* *
* *| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): (1,1) i==j → _. (1,3) i+j==4 → _. (2,2) both → _. (3,1) i+j==4 → _. (3,3) i==j → *.
Diagonal Numbers
class Main {
public static void main(String[] args) {
int n = 4;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == j) System.out.print(i + " ");
else System.out.print(" ");
}
System.out.println();
}
}
}class Main:
def main(self):
n = 4
for i in range(1, n + 1):
for j in range(1, n + 1):
if i == j:
print(f"{i} ", end="")
else:
print(" ", end="")
print()1
2
3
4| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): (1,1)→1. (2,2)→2. (3,3)→3. All other positions print spaces.
Diagonal Cross Numbers
class Main {
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == j || i + j == n + 1) System.out.print(i + " ");
else System.out.print(" ");
}
System.out.println();
}
}
}class Main:
def main(self):
n = 5
for i in range(1, n + 1):
for j in range(1, n + 1):
if i == j or i + j == n + 1:
print(f"{i} ", end="")
else:
print(" ", end="")
print()1 1
2 2
3
4 4
5 5| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): (1,1)→1, (1,3)→1, (2,2)→2, (3,1)→3, (3,3)→3.
Pascal's Triangle
class Solution {
public void printPascalsTriangle(int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i - 1; j++) System.out.print(" ");
int num = 1;
for (int k = 0; k <= i; k++) {
System.out.print(num + " ");
num = num * (i - k) / (k + 1);
}
System.out.println();
}
}
}class Solution:
def printPascalsTriangle(self, n: int) -> None:
for i in range(n):
for j in range(n - i - 1):
print(" ", end="")
num = 1
for k in range(i + 1):
print(f"{num} ", end="")
num = num * (i - k) // (k + 1)
print() 1
1 1
1 2 1
1 3 3 1 | Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=4): i=0 → spaces=3, prints 1. i=1 → spaces=2, prints 1 1. i=2 → spaces=1, prints 1 2 1. i=3 → spaces=0, prints 1 3 3 1.
Half Diamond Star Pattern
class Solution {
public void printHalfDiamond(int n) {
for (int i = 1; i <= 2 * n - 1; i++) {
int stars = i <= n ? i : 2 * n - i;
for (int j = 1; j <= stars; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}class Solution:
def printHalfDiamond(self, n: int) -> None:
for i in range(1, 2 * n):
stars = i if i <= n else 2 * n - i
for j in range(1, stars + 1):
print("* ", end="")
print()*
* *
* * *
* *
* | Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): i=1 → 1 star. i=2 → 2 stars. i=3 → 3 stars. i=4 → 2 stars. i=5 → 1 star.
Hollow Square
class Solution {
public void printHollowSquare(int n) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == 1 || i == n || j == 1 || j == n) System.out.print("* ");
else System.out.print(" ");
}
System.out.println();
}
}
}class Solution:
def printHollowSquare(self, n: int) -> None:
for i in range(1, n + 1):
for j in range(1, n + 1):
if i == 1 or i == n or j == 1 or j == n:
print("* ", end="")
else:
print(" ", end="")
print()* * * * *
* *
* *
* *
* * * * *| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): (1,1) (1,2) (1,3) → stars. (2,1) (2,3) → stars. (3,1) (3,2) (3,3) → stars. Rest spaces.
Butterfly Pattern
import java.util.Scanner;
public class ButterflyPattern {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the number of rows for one half (n): ");
int n = scanner.nextInt();
scanner.close();
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
for (int j = 1; j <= 2 * (n - i); j++) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
for (int i = n - 1; i >= 1; i--) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
for (int j = 1; j <= 2 * (n - i); j++) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
class ButterflyPattern:
def main(self):
n = int(input("Enter the number of rows for one half (n): \n"))
for i in range(1, n + 1):
for j in range(1, i + 1):
print("*", end="")
for j in range(1, 2 * (n - i) + 1):
print(" ", end="")
for j in range(1, i + 1):
print("*", end="")
print()
for i in range(n - 1, 0, -1):
for j in range(1, i + 1):
print("*", end="")
for j in range(1, 2 * (n - i) + 1):
print(" ", end="")
for j in range(1, i + 1):
print("*", end="")
print()* *
** **
*** ***
**** ****
**********
**** ****
*** ***
** **
* *| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): i=1 → 1 star, 4 spaces, 1 star. i=3 → 3 stars, 0 spaces, 3 stars. i=5 → 1 star, 4 spaces, 1 star.
Floyd's Triangle
class Solution {
public void printFloydTriangle(int n) {
int num = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(num + " ");
num++;
}
System.out.println();
}
}
}class Solution:
def printFloydTriangle(self, n: int) -> None:
num = 1
for i in range(1, n + 1):
for j in range(1, i + 1):
print(f"{num} ", end="")
num += 1
print()1
2 3
4 5 6
7 8 9 10 | Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): Row 1: num=1. Row 2: num=2,3. Row 3: num=4,5,6.
Rhombus Pattern
class Solution {
public void printRhombus(int n) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) System.out.print(" ");
for (int j = 1; j <= n; j++) System.out.print("* ");
System.out.println();
}
}
}class Solution:
def printRhombus(self, n: int) -> None:
for i in range(1, n + 1):
for j in range(1, n - i + 1):
print(" ", end="")
for j in range(1, n + 1):
print("* ", end="")
print() * * * * *
* * * * *
* * * * *
* * * * *
* * * * *| Type | Value |
|---|---|
| Time | O(n²) |
| Space | O(1) |
- Dry run (n=3): i=1 → 2 spaces, 3 stars. i=2 → 1 space, 3 stars. i=3 → 0 spaces, 3 stars.