кодесурса

Упражнения на Java: найдите путь сверху вниз в правом направлении

script1adsense2code
script1adsense3code

Java Basic: упражнение 133 с решением

Напишите программу на Java, чтобы найти путь сверху вниз в правом направлении, который минимизирует сумму всех чисел вдоль ее пути.

Примечание: двигайтесь вниз или вправо в любой момент времени.

Иллюстрированная презентация:


Пример решения:

Java-код:

public class Solution {
    public static int minPathSum(int[][] grid) {
        if (grid == null || grid.length == 0 || grid[0] == null || grid[0].length == 0) {
            return 0;
        }
        int m = grid.length;
        int n = grid[0].length;
        int[][] temp = new int[m][n];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                   if (i == 0 && j == 0) {
                    temp[i][j] = grid[i][j];
                    continue;
                } 
                // Compute temp
                int from_up = i == 0 ? Integer.MAX_VALUE : temp[i - 1][j];
                int from_left = j == 0 ? Integer.MAX_VALUE : temp[i][j - 1];
                temp[i][j] = Math.min(from_up, from_left) + grid[i][j];               
            }
        }
       return temp[m - 1][n - 1];
    }
    /* Driver program to test above functions */
    public static void main(String[] args) {
     
		int[][] grid = new int[][] {{7,4,2},
		                            {0,5,6},
    		                        {3,1,2}};
		                          
		System.out.println("Sum of all numbers along its path: "+minPathSum(grid));
	}	
}

Пример вывода:

 Сумма всех чисел на его пути: 13

Блок - схема:

«Блок-схема:

Редактор кода Java:

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите программу на Java, чтобы найти новую длину заданного отсортированного массива, в котором дублированные элементы появлялись не более двух раз.
Далее: Напишите программу на Java, чтобы найти отличные способы подняться на вершину (n шагов, чтобы добраться до вершины) лестницы. Каждый раз вы можете подняться на 1 или 2 шага.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code