zoukankan      html  css  js  c++  java
  • 矩阵取数问题

    给定一个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
    

      

  • 相关阅读:
    7.12
    Powerdesigner使用方法
    数据库中float类型字段,转化到前端显示,统一保留两位小数
    【1】直接插入排序
    KMP算法
    ssm框架下web项目,web.xml配置文件的作用
    客户要求输入框要记录下上一次输入的内容
    tomcat启动闪退
    页面第一次加载,JS没有效果,刷新一下就好了
    机器学习,安装python的支持包
  • 原文地址:https://www.cnblogs.com/fyzjhh/p/5504415.html
Copyright © 2011-2022 走看看