zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):数组类:第63题:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?

    题目:
    一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。  机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。  现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 
    思路:
    和没有障碍思路类似,将有障碍部分设置成1就好了
    程序:
    class Solution:
        def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
            row = len(obstacleGrid)
            column = len(obstacleGrid[0])
            if row <= 0:
                return 0
            result = [[0] * (column + 1) for _ in range(row + 1)]
            result[0][1] = 1
            for index1 in range(1, row + 1):
                for index2 in range(1, column + 1):
                    if obstacleGrid[index1 - 1][index2 - 1] == 0:
                        result[index1][index2] = result[index1 - 1][index2] + result[index1][index2 - 1]
            output = result[-1][-1]
            return output
  • 相关阅读:
    启动MySql提示:The server quit without updating PID file(…)失败
    Linux环境安装git
    Linux环境下安装jenkins
    Linux 环境下安装Maven
    阿里云服务器tomcat启动慢解决方案
    Linux环境安装redis
    Linux环境安装nginx
    Paxos算法细节详解(一)--通过现实世界描述算法
    Nginx的配置详解
    Javascript中DOM详解与学习
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12751478.html
Copyright © 2011-2022 走看看