博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lintcode :最小路径和
阅读量:6157 次
发布时间:2019-06-21

本文共 1336 字,大约阅读时间需要 4 分钟。

题目:

给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。

样例
 
注意

你在同一时间只能向下或者向右移动一步

解题:

这个和求的最小路径的差不多,这里是个矩阵,第一列和第一行要单独处理,每一点的值等于自身的值加上上一点的值,对于中间节点:grid[i][j] + = min( grid[i-1][j] , grid[i][j-1]) ,也就是说,i j 点的值只能是其左侧的点或者上侧的点加过来,这个时间复杂度比较高O(N2)

Java程序:

public class Solution {    /**     * @param grid: a list of lists of integers.     * @return: An integer, minimizes the sum of all numbers along its path     */    public int minPathSum(int[][] grid) {        // write your code here        int m = grid.length;        if(m == 0 )            return 0;        int n = grid[0].length;        if( n==0 )            return 0;        for(int i=1 ; i
View Code

Python程序:

class Solution:    """    @param grid: a list of lists of integers.    @return: An integer, minimizes the sum of all numbers along its path    """    def minPathSum(self, grid):        # write your code here        m = len(grid)        if m == 0:            return 0        n = len(grid[0])        if n==0:            return 0        for i in range(m):            for j in range(n):                if i==0 and j!=0:                    grid[i][j] += grid[i][j-1]                elif j==0 and i!=0:                    grid[i][j] += grid[i-1][j]                elif j!=0 and i!=0:                    grid[i][j] += min(grid[i-1][j] , grid[i][j-1])        return grid[m-1][n-1]
View Code

 

转载地址:http://xpifa.baihongyu.com/

你可能感兴趣的文章
HTML.2文本
查看>>
Ubuntu unity安装Indicator-Multiload
查看>>
解决Eclipse中新建jsp文件ISO8859-1 编码问题
查看>>
7.对象创建型模式-总结
查看>>
【论文阅读】Classification of breast cancer histology images using transfer learning
查看>>
移动端处理图片懒加载
查看>>
jQuery.on() 函数详解
查看>>
谈缓存和Redis
查看>>
【转】百度地图api,根据多点注标坐标范围计算地图缩放级别zoom自适应地图
查看>>
用户调研(补)
查看>>
ExtJS之开篇:我来了
查看>>
☆1018
查看>>
oracle 去掉空格
查看>>
6.13心得
查看>>
Runtime类
查看>>
eclipse decompiler
查看>>
记一个搜索网盘资源的网站
查看>>
jdk1.7和jdk1.8的String的getByte方法的差异
查看>>
java父子进程通信
查看>>
Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
查看>>