Skip to main content

How to print Pascal's Triangle by given index | Pascal's Triangle II LeetCode Solution

Pascal's Triangle II LeetCode Solution in Java

Print Pascal's Triangle by given index | leetcode solution

Problem description :

Return particular row index of Pascal's Triangle based on given index.

Sample input and output :

Input 1 :
4

Output 1 :
[1, 4, 6, 4, 1]

Input 2 :
7

Output 2 :
[1, 7, 21, 35, 35, 21, 7, 1]

Pascal's Triangle

In Pascal's triangle, each number is the sum of the two numbers directly above. You can see in above image.

Lets see solution.

Solution 1 : Using Java List

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class PascalsTriangle {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("Enter row");
        int row = sc.nextInt();
        int[] array = new int[row];
        print(row);
    }
    
    public static void print(int row) {

        List<Integer> list = new ArrayList<>();
        for (int i = 0; i <= row; i++) {
            list.add(1);
            for (int j = i-1; j > 0; j--) {
                list.set(j, list.get(j) + list.get(j-1));
            }
        }
        System.out.println(list);
    }

}

Output :

Enter row
4
[1, 4, 6, 4, 1]

Enter row
10
[1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1]

Output explanation :

  • row = 4, i = 0, 0 <= 4 becomes true
    • list.add(1) | list = [1]
    • j = -1, -1 > 0 becomes false

  • i = 1
    • list.add(1) | list = [1, 1]
    • j = 0, 0 > 0 becomes false

  • i = 2
    • list.add(1) | list = [1, 1, 1]
    • j = 1, 1 > 0 becomes true
      • list.set(1, list.get(1) + list.get(1-1)) | list.set(1, 2) | set 2 at index 1
      • list = [1, 2, 1]

  • i = 3
    • list.add(1) | list = [1, 2, 1, 1]
    • j = 2, 2 > 0 becomes true
      • list.set(2, 3) | set 3 at index 2
      • list = [1, 2, 3, 1]
    • j = 1, 1 > 0 becomes true 
      • list.set(1, 3) | set 3 at index 1
      • list = [1, 3, 3, 1]

  • i = 4
    • list.add(1) | list = [1, 3, 3, 1, 1]
    • j = 3, 3 > 0 becomes true
      • list.set(3, 4) | set 4 at index 3
      • list = [1, 3, 3, 4, 1]
    • j = 2, 2 > 0 becomes true 
      • list.set(2, 5) | set 6 at index 2
      • list = [1, 3, 6, 4, 1]
    • j = 1, 1 > 0 becomes true 
      • list.set(1, 4) | set 4 at index 1
      • list = [1, 4, 6, 4, 1]
    • j = 0, 0 > 0 becomes false.
  • i = 5, 5 >= 4 becomes false
  • Print or return list = [1, 4, 6, 4, 1]

Solution 2 : Using Java Array

    public static void print(int row) {
        Integer[] array = new Integer[row + 1];
        Arrays.fill(array, 0);
        array[0] = 1;
       
        for (int i = 1; i <= row; i++) {
            for (int j = i; j > 0; j--) {
                array[j] = array[j] + array[j-1];
            }
        }
       
        System.out.println(Arrays.asList(array));
    }


Other Leetcode and HackerRank soultions :


Comments

Popular posts from this blog

Simple Text Editor HackerRank Solution in Java with Explanation

Simple Text Editor HackerRank Solution in Java with Explanation Problem Description : Implement a simple text editor. The editor initially contains an empty string S. Perform Q operations of the following 4 types: append (W) - Append string W to the end of S. delete (k) - Delete the last K characters of S. print (k) - Print the kth character of S. undo () - Undo the last (not previously undone) operation of type 1 or 2, reverting S to the state it was in prior to that operation. Example : Input : S = "abcde" Operations = ["1 fg", "3 6", "2 5", "4", "3 7", "4", "3 4"] index   S          ops[index]    explanation -----   ------     ----------    ----------- 0       abcde      1 fg          append fg 1       abcdefg    3 6        ...

Queen's Attack II HackerRank Solution in Java with Explanation

Queen's Attack II Problem's Solution in Java (Chessboard Problem)   Problem Description : You will be given a square chess board with one queen and a number of obstacles placed on it. Determine how many squares the queen can attack.  A queen is standing on an n * n chessboard. The chess board's rows are numbered from 1 to n, going from bottom to top. Its columns are numbered from 1 to n, going from left to right. Each square is referenced by a tuple, (r, c), describing the row r and column c, where the square is located. The queen is standing at position (r_q, c_q). In a single move, queen can attack any square in any of the eight directions The queen can move: Horizontally (left, right) Vertically (up, down) Diagonally (four directions: up-left, up-right, down-left, down-right) The queen can move any number of squares in any of these directions, but it cannot move through obstacles. Input Format : n : The size of the chessboard ( n x n ). k : The number of obstacles...