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.