首页 > 其他分享 >不同路径II

不同路径II

时间:2024-04-27 15:56:01浏览次数:32  
标签:障碍物 obstacleGrid int 不同 路径 else II range 步数

https://leetcode.cn/problems/unique-paths-ii/description/?envType=study-plan-v2&envId=top-interview-150

  1. 思路很简单,让obstacleGrid[i][j]代表走到ij所需要的步数,然后obstacleGrid[i][j] = obstacleGrid[i-1][j] + obstacleGrid[i][j-1]只需要把上方和左边的但是有很多神奇的corner case需要注意
  2. 比如开始就是障碍物就寄了,第一列和第一行的所有元素需要初始化为1
  3. 遇到障碍物的正确处理方法,需要把障碍物的格子可行步数设为零

这matrix的变量名真长

class Solution:
    def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
        m = len(obstacleGrid)
        n = len(obstacleGrid[0])
        
        if obstacleGrid[0][0] == 1:  # Check if the starting cell is an obstacle
            return 0
        
        obstacleGrid[0][0] = 1  # Set the initial value
        
        # Initialize the first column
        for i in range(1, m):
            if obstacleGrid[i][0] == 1:
                obstacleGrid[i][0] = 0
            else:
                obstacleGrid[i][0] = obstacleGrid[i-1][0]
        
        # Initialize the first row
        for j in range(1, n):
            if obstacleGrid[0][j] == 1:
                obstacleGrid[0][j] = 0
            else:
                obstacleGrid[0][j] = obstacleGrid[0][j-1]
        
        # Fill the rest of the grid
        for i in range(1, m):
            for j in range(1, n):
                if obstacleGrid[i][j] == 1:
                    obstacleGrid[i][j] = 0
                else:
                    obstacleGrid[i][j] = obstacleGrid[i-1][j] + obstacleGrid[i][j-1]
        
        return obstacleGrid[-1][-1]

标签:障碍物,obstacleGrid,int,不同,路径,else,II,range,步数
From: https://www.cnblogs.com/peterzh/p/18162150

相关文章

  • 力扣-59. 螺旋矩阵 II
    1.题目题目地址(59.螺旋矩阵II-力扣(LeetCode))https://leetcode.cn/problems/spiral-matrix-ii/题目描述给你一个正整数 n,生成一个包含1到 n2 所有元素,且元素按顺时针顺序螺旋排列的 nxn正方形矩阵matrix。 示例1:输入:n=3输出:[[1,2,3],[8,9,4],[7,6,5]......
  • 三角形最小路径和
    题源:IOI飞入寻常百姓家classSolution:defminimumTotal(self,triangle:List[List[int]])->int:n=len(triangle)dp=[[0]*(i+1)foriinrange(n)]dp[0][0]=triangle[0][0]foriinrange(1,n):dp[i][0]......
  • 从海量数据表中筛选符合不同条件组合的数据的SQL优化
    速度很慢的SQL脚本SETNOCOUNTON;DECLARE@snVARCHAR(200);DECLARE@nINT;DECLARE@sn_tabTABLE(idBIGINT,snVARCHAR(200));IFOBJECT_ID('tempdb..#tab_f1')ISNOTNULLDROPTABLE#tab_f1CREATETABLE#tab_f1(idBIGINT)CREATEINDEXidx_f1_id......
  • 力扣-598. 区间加法 II
    1.题目题目地址(598.区间加法II-力扣(LeetCode))https://leetcode.cn/problems/range-addition-ii/题目描述给你一个mx n的矩阵 M和一个操作数组op。矩阵初始化时所有的单元格都为0。ops[i]=[ai,bi]意味着当所有的0<=x<ai和0<=y<bi时,M[x][y]应......
  • vllm 通过不同的chat_template推理部署常见qwen、chatglm、llama3等开源大模型
    vllm版本4.0.0镜像vllmgithub官方镜像gpuv10032ga80080gopenaiapi方式出现的问题通过chat-template聊天模板解决1推理部署qwen系列模型测试我是谁问题:回答内容含有分词符,回答有杂论冗余内容模型文件没有默认聊天模板vllm官方也没有聊天模板找不到不过......
  • 根据不同的编码格式读取txt文件内容
    参考:https://blog.csdn.net/chiwang1984/article/details/8593240importlombok.extern.slf4j.Slf4j;importjava.io.BufferedReader;importjava.io.DataInputStream;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStreamReader;imp......
  • 使用Win-ACME在Windows+iis服务器下配置自动续期SSL证书
    win-acme,github地址:https://github.com/win-acme/win-acme简单介绍一下win-acme这款工具吧,看到名字我们就知道前面加了win就代表是windows服务器版本,这款工具也支持liunx服务器。情况说明我本人是做.NET开发的,由于网站建设和小程序开发等都需要https,但是ssl证书有过期的限制,如果......
  • Spring Boot应用中如何动态指定数据库,实现不同用户不同数据库的场景
    当在SpringBoot应用程序中使用SpringDataJPA进行数据库操作时,配置Schema名称是一种常见的做法。然而,在某些情况下,模式名称需要是动态的,可能会在应用程序运行时发生变化。比如:需要做数据隔离的SaaS应用。所以,这篇博文将帮助您解决了在SpringBoot应用程序中如何设置动态S......
  • 如何稳定高效地在不同地域文件交换,一文了解!
    在大型企业和组织中,不同区域部位、分支机构、业务部门之间文件交换方案都存在差异,基本是各自建设,单独管理。因此在不同地域文件交换时,通常需要考虑以下几个关键因素: 1.数据安全:确保文件在传输过程中的安全性,避免数据泄露或被未授权访问。2.传输速度:考虑文件的大小和传输速度,......
  • 为 IIncrementalGenerator 增量 Source Generator 源代码生成项目添加单元测试
    本文属于IIncrementalGenerator增量SourceGenerator源代码生成入门系列博客,本文将和大家介绍如何为源代码生成项目添加单元测试添加单元测试的作用不仅可以用来实现通用的单元测试提高质量的功能,还能用来辅助调试IIncrementalGenerator增量SourceGenerator源代码生成项......