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:

Software Engineering Concepts Basics Of Testing Pre-Quiz

  Software Engineering Concepts       Basics Of Testing            Pre-Quiz | Software Engineering Concepts  Basics Of Testing  Pre-Quiz | Software Engineering Concepts  Requirement Analysis  Post-Quiz Software Engineering Concepts  Requirement Analysis  Test Your Understanding Software Engineering Concepts  Requirement Analysis  Pre-Quiz Software Engineering Concepts  Software Maintenance  Test Your Understanding Software Engineering Concepts  Software Maintenance  Post-Quiz Software Engineering Concepts  Software Maintenance  Pre-Quiz Software Engineering Concepts  Software Engineering Fundamentals  Post-Quiz Software Engineering Concepts  Software Engineering Fundamentals  Pre-Quiz Algorithm Analysis and Design Concepts  Data Structure and Algorithms  Post-Quiz Software Engineering Concepts  Configuration Management And V...

Mock 3 Slot3 - Handson - 21st July RDBMS (20 Marks) 2.1 Customer details

Write a query to display customer id, customer name, and password of customers whose name starts with 'A'. The password contains the first 3 characters from the name and the first 3 digits from the phone number.  Give alias name for password as PASSWORD. Sort the records based on id in descending order. ( Hint: Retrieve data from Customers tables ) Evaluation Result: Result Description Summary of tests:(Note:Your query is evaluated against different datasets. Kindly do not Hardcode) +------------------------------+ | 2 tests run / 2 test passed | +------------------------------+

Unbounded 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. Note: Each item can be taken any number of times. You are allowed to put the same item again                    and again. Input Format A number n v1 v2 .. n number of elements w1 w2 .. n number of elements A number cap Output Format A number representing the maximum value that can be created in the bag without overflowing it's capacity Constraints 1 <= n <= 20 0 <= v1, v2, .. n elements <= 50 0 < w1, w2, .. n elements <= 10 0 < cap <= 10 Sample Input 5 15 14 10 45 30 2 5 1 3 4 7 Sample Output 100 Solution: im...

Accenture Mock Quiz | Part 1

Question  1 Incorrect Marked out of 1.00 Remove flag Question text Select the true statement ? Select one: a.  Inheritance forms a is-a part of relationship between classes.   b.  Aggregation is the stronger form of Inheritance. c.  Aggregation forms the is-a type of relationship between classes. d.  Aggregation forms a is-a part of relationship between classes. Composition is the stronger form of Aggregation. Feedback The correct answer is: Aggregation forms a is-a part of relationship between classes. Composition is the stronger form of Aggregation. Question  2 Correct Marked out of 1.00 Flag question Question text What is the diagram that depicts the interaction between objects by arranging the objects in time sequence ? Select one: a.  Use Case Diagram b.  Sequence Diagram   c.  Component Diagram d.  Activity Diagram Feedback The correct answer is: Sequence Diagram Question  3 Incorrect Marked out of 1.00 Flag question...

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 ++)  ...

Basics of Java | Operators | Day 1

Problem: Operators are symbols that perform operations on variables and values. For example, + is an operator used for addition , while * is also an operator used for multiplication . Operators in Java can be classified into 6 types: Arithmetic Operators Assignment Operators Relational Operators Logical Operators Unary Operators Bitwise Operators References: Click Here . We will discuss about arithmetic operators and rest you can study from the references mentioned above. Arithmetic Operators: Arithmetic operators are used to perform arithmetic operations on variables and data. For example, a + b; Here, the + operator is used to add two variables a and b. Similarly, there are various other arithmetic operators in Java. Operator Operation + Addition - Subtraction * Multiplication / Division % Modulo Operation (Remainder after division) Task: You are given two integers as input a and b You need to perform several...

0-1 Pattern

  /* @ToDo  0-1 Pattern     1     0   1     0   1   0     1   0   1   0     1   0   1   0   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 ;      int   sign  =  1 ;      for ( int   i = 1 ; i <= n ; i ++){    ...

Software Engineering Concepts Basics Of Testing Test Your Understanding

 Software Engineering Concepts       Basics Of Testing            Test Your Understanding Software Engineering Concepts  Basics Of Testing  Test Your Understanding | Software Engineering Concepts  Basics Of Testing  Pre-Quiz | Software Engineering Concepts  Requirement Analysis  Post-Quiz Software Engineering Concepts  Requirement Analysis  Test Your Understanding Software Engineering Concepts  Requirement Analysis  Pre-Quiz Software Engineering Concepts  Software Maintenance  Test Your Understanding Software Engineering Concepts  Software Maintenance  Post-Quiz Software Engineering Concepts  Software Maintenance  Pre-Quiz Software Engineering Concepts  Software Engineering Fundamentals  Post-Quiz Software Engineering Concepts  Software Engineering Fundamentals  Pre-Quiz Algorithm Analysis and Design Concepts  Data Structure...

RDBMS Data Definition Language | Alter -Modify the field type

Write a query to change the field type weight varchar(20) in Mobile_specification table to number(10). Result Description Summary of tests +------------------------------+ | 3 tests run / 3 test passed | +------------------------------+

Subscribe to Get's Answer by Email