• 矩阵取数问题


    给定一个m行n列的矩阵,矩阵每个元素是一个正整数,你现在在左上角(第一行第一列),你需要走到右下角(第m行,第n列),每次只能朝右或者下走到相邻的位置,不能走出矩阵。走过的数的总和作为你的得分,求最大的得分。

    public class MatrixMN {
    	public static void main(String[] args) throws Exception {
    		int row = 5;
    		int col = 4;
    
    		int[][] array = new int[row][col];
    		for (int i = 0; i < row; i++) {
    			for (int j = 0; j < col; j++) {
    				array[i][j] = (int) (Math.random() * 10) + 1;
    			}
    		}
    
    		printMatrix(array);
    
    		System.out.println(test(array,row,col));
    	}
    
    	public static int test(int[][] array, int row, int col) {
    
    		int[][] matrix = new int[row+1][col+1];
    
    		// 第一行
    		for (int i = 0; i <= col; i++) {
    			matrix[0][i] = 0;
    		}
    		// 第一列
    		for (int i = 0; i <= row; i++) {
    			matrix[i][0] = 0;
    		}
    
    		printMatrix(matrix);
    		
    		for (int i = 1; i <= row; i++) {
    			for (int j = 1; j <= col; j++) {
    				int x = array[i-1][j-1]; // 当前位置的值
    				
    				int left = matrix[i][j - 1]; // 左边的
    				int up = matrix[i - 1][j];// 上面的
    
    				matrix[i][j] = Math.max(x+left , x+up);
    
    			}
    
    		}
    
    		// Printing the matrix
    		printMatrix(matrix);
    
    		return matrix[row][col];
    	}
    
    	private static void printMatrix(int[][] matrix) {
    		for (int[] row_val : matrix) {
    			for (int val : row_val) {
    				System.out.format("%5d", val);
    			}
    			System.out.println();
    		}
    		System.out.println();
    	}
    }
    

      

    结果:

        6    3    3    2
        3    1    4    8
        5    8    7    5
        2    3    7   10
        8    5    9    4
    
        0    0    0    0    0
        0    0    0    0    0
        0    0    0    0    0
        0    0    0    0    0
        0    0    0    0    0
        0    0    0    0    0
    
        0    0    0    0    0
        0    6    9   12   14
        0    9   10   16   24
        0   14   22   29   34
        0   16   25   36   46
        0   24   30   45   50
    
    50
    

      

  • 相关阅读:
    项目原型设计
    项目选题报告 (基于云的胜利冲锋队)
    基于云的胜利冲锋队 团队团队展示
    团队作业第三次-项目原型设计
    团队作业第二次-项目选题报告
    团队作业第一次-团队团队展示
    周测、代码
    异常
    5.13重点
    接口
  • 原文地址:https://www.cnblogs.com/fyzjhh/p/5504415.html
Copyright © 2020-2023  润新知