Skip to main content

Min Cost In Maze Traversal

1. You are given a number n, representing the number of rows.

2. You are given a number m, representing the number of columns.

3. You are given n*m numbers, representing elements of 2d array a, which represents a maze.

4. You are standing in top-left cell and are required to move to bottom-right cell.

5. You are allowed to move 1 cell right (h move) or 1 cell down (v move) in 1 motion.

6. Each cell has a value that will have to be paid to enter that cell (even for the top-left and bottom- 

     right cell).

7. You are required to traverse through the matrix and print the cost of path which is least costly.

Input Format

A number n

A number m

e11

e12..

e21

e22..

.. n * m number of elements

Output Format

The cost of least costly path.


Constraints

1 <= n <= 10^2

1 <= m <= 10^2

0 <= e1, e2, .. n * m elements <= 1000

Sample Input

6

6

0 1 4 2 8 2

4 3 6 5 0 4

1 2 4 1 4 6

2 0 7 3 2 2

3 1 5 9 2 4

2 7 0 8 5 1

Sample Output

23


Solution:

import java.io.*;

import java.util.*;


public class Main {


    public static void main(String[] args) throws Exception {

        // write your code here

        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();

        int m = sc.nextInt();

        int[][] arr = new int[n][m];

        

        for(int i=0;i<n;i++)

            for(int j=0;j<m;j++)

                arr[i][j] = sc.nextInt();

        

        int[][] dp = new int[n][m];

        dp[n-1][m-1] = arr[n-1][m-1];

        for(int i=n-1;i>=0;i--){

            for(int j=m-1;j>=0;j--){

                // move down n right

                int min = Integer.MAX_VALUE;

                if(j+1 <m)

                    min = Math.min(min,dp[i][j+1]);

                if(i+1<n)    

                    min = Math.min(min,dp[i+1][j]);

                if(min == Integer.MAX_VALUE)    continue;

                    dp[i][j] = arr[i][j] + min;

            }

        }

        System.out.println(dp[0][0]);

    }

}

Comments

Must Read:

Programming using Java Hands On - Arrays | Find & Display the position of a number

  Write a java program to find the given number from the array of elements and display its position. If the number is not present in an array then display it as 0. Assume the position starts from 1. Sample Input 1 Enter the array size 4 Enter the values 9 32 17 4 Enter the number to find 17 Sample Output 1 3 Sample Input  2 Enter the array size 3 Enter the values 29 53 11 Enter the number to find 49 Sample Output  2 0 Result Description Summary of tests *Note: All the test cases might not have same weightage +------------------------------+ |4 tests run / 4 tests passed | +------------------------------+ TEST CASE PASSED

Software Engineering Concepts Basics Of Testing Basics Of Testing | Quiz 2

Software Engineering Concepts  Basics Of Testing  Basics Of Testing Quiz 2

DH ASE B3 Slot 3 Mock 1 - Quiz

 DH ASE B3       Slot 3            Mock 1                 Quiz

RDBMS Data Definition Language | Create Distributor table

  Write a query to create Distributor table with constraints mentioned.  Refer the below schema  Result Description Summary of tests +------------------------------+ | 3 tests run / 3 test passed | +------------------------------+

Inverted Pattern

  /* @ToDo  Inverted Pattern 1   2   3   4   5    1   2   3   4    1   2   3    1   2    1    */ #include   <iostream> using   namespace   std ; int   main (){       #ifndef  ONLINE_JUDGE          freopen ( "../asset/input.txt" , "r" , stdin );          freopen ( "../asset/output.txt" , "w" , stdout );     #endif     // Code here!!      int   n ;  cin >> n ;      for ( int   i = 0 ; i < n ; i ++){          for ( int   j = 1 ; j <= n - i ; j ++)  ...

Programming using Java Hands On - Control Structures | Highest Placement

  Highest Placement SRV college wants to recognize the department which has succeeded in getting the maximum number of placements for this academic year. The departments that have participated in the recruitment drive are CSE,ECE, MECH. Help the college find the department getting maximum placements. Check for all the possible output given in the sample snapshot Note : If any input is negative, the output should be "Input is invalid".  If all department has equal number of placements, the output should be "None of the department has got the highest placement". Sample Input 1: Enter the no of students placed in CSE:90 Enter the no of students placed in ECE:45 Enter the no of students placed in MECH:70 Sample  Output 1: Highest placement CSE Sample Input 2: Enter the no of students placed in CSE:55 Enter the no of students placed in ECE:85 Enter the no of students placed in MECH:85 Sample  Output 2: Highest placement ECE MECH Sample Input 3: Enter the no of students p...

RDBMS Data Definition Language | Create Mobile_master table

  Write a query to create Mobile_master table with constraints mentioned.  Refer the below schema  Result Description Summary of tests +------------------------------+ | 3 tests run / 3 test passed | +------------------------------+

Programming using Java Hands On - Control Structures | Income Calulation

Income Calculation In a company named Micky software solution, many part-time employees are working for a pay of Rs. 100 per hour. Write a program to calculate the total amount an employee earns in a year by working part time. Consider employees should work all day in the year and year has 365 days. Note : The hour should be a positive value less than or equal to 24, if fails display "Unable to calculate the earnings" Sample Input 1: Enter no of hours worked in a day:3 Sample Output   1 : Total income in a year:109500 Sample Input 2: Enter no of hours worked in a day:-5 Sample Output   2 : Unable to calculate the earnings Result Description Summary of tests *Note: All the test cases might not have same weightage +------------------------------+ | 6 tests run/ 6 tests passed | +------------------------------+

Fractional Knapsack

1. You are given a number n, representing the count of items. 2. You are given n numbers, representing the values of n items. 3. You are given n numbers, representing the weights of n items. 3. You are given a number "cap", which is the capacity of a bag you've. 4. You are required to calculate and print the maximum value that can be created in the bag without overflowing it's capacity. Note1: Items can be added to the bag even partially. But you are not allowed to put same items again and again to the bag. Input Format A number n v1 v2 .. n number of elements w1 w2 .. n number of elements A number cap Output Format A decimal number representing the maximum value that can be created in the bag without overflowing it's capacity 1. You are given a number n, representing the count of items. 2. You are given n numbers, representing the values of n items. 3. You are given n numbers, representing the weights of n items. 3. You are given a number "cap", which i...

Subscribe to Get's Answer by Email