動態規劃-63.不同路徑II-力扣(LeetCode)

一、題目解析

?

與62.不同路徑不同的一點是現在網格中有了障礙物,其他的并沒有什么不同?

二、算法解析

1.狀態表示

dp[i][j]表示:到[i,j]位置時,不同的路徑數

2.狀態轉移方程

由于多了障礙物,所以我們要判斷是否遇到障礙物

3.初始化

我們要保證初始化后(1)保證后面填表是正確的(2)下標的映射關系

?

觀察左邊帶圓圈的位置,可以發現在初始化的時候會有越界訪問的問題,所以就有了右圖的解決方法,多加一行一列,并初始化dp[1][0] = 1,為什么只初始化這一個值呢?根據這個圖我們能知道到達dp[1][1]位置時,機器人只有一種方法,同理其他圓圈格子同理,所以只需要初始化dp[1][0]其他位置的值可以計算得出。

這里的映射關系為dp[i][j] == obstacleGrid[i-1][j-1],即橫縱坐標都-1.

4.填表順序

為了保證填表時所需值存在,從左往右,從上往下,完成填表

5.返回值

由題需要返回到達右下角的方法數,所以返回dp[m][n]

雖然62沒有很大區別,但還是建議自己去上手寫一遍,鏈接:63. 不同路徑 II - 力扣(LeetCode)?

三、代碼示例

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int m = obstacleGrid.size();int n = obstacleGrid[0].size();vector<vector<int>> dp(m+1,vector<int>(n+1));dp[1][0] = 1;for(int i = 1;i<=m;i++){for(int j = 1;j<=n;j++){if(obstacleGrid[i-1][j-1] == 0){dp[i][j] = dp[i-1][j] + dp[i][j-1];}}}return dp[m][n];}
};

?

看到最后,如果對您有所幫助還請點贊、收藏,我們下期再見!?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/905773.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/905773.shtml
英文地址,請注明出處:http://en.pswp.cn/news/905773.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用CherryStudio +SiliconFlow 部署獨立的deepseek+知識庫

deepseek知識庫&#xff0c;獨立的deepseek 首先我們先了解 CherryStudio&#xff1f;SiliconFlow&#xff1f; CherryStudio是一個支持多平臺的AI客戶端&#xff0c;我們致力于讓更多人能夠享受到AI帶來的便利。 簡單來說&#xff0c;它是一個能讓普通人輕松用上AI 的「萬能工…

Openshift節點Disk pressure

OpenShift 監控以下指標&#xff0c;并定義以下垃圾回收的驅逐閾值。請參閱產品文檔以更改任何驅逐值。 nodefs.available 從 cadvisor 來看&#xff0c;該node.stats.fs.available指標表示節點文件系統&#xff08;所在位置&#xff09;上有多少可用&#xff08;剩余&#xf…

MySQL的 JOIN 優化終極指南

目錄 前言序章&#xff1a;為何要有JOIN&#xff1f;——“一個好漢三個幫”的數據庫哲學 &#x1f91d;第一章&#xff1a;JOIN的“七十二變”——常見JOIN類型速覽 &#x1f3ad;第二章&#xff1a;MySQL的“紅娘秘籍”——JOIN執行原理大揭秘 &#x1f575;??♀?&#x1…

TLS 1.3黑魔法:從協議破解到極致性能調優

一、TLS協議逆向工程實驗 1.1 密碼學套件破解劇場 實驗準備&#xff1a; 靶機&#xff1a;啟用TLS 1.2的Nginx服務器 工具集&#xff1a;Wireshark OpenSSL s_client 定制Python腳本 實戰攻擊復現&#xff1a; # 強制使用弱加密套件連接 openssl s_client -connect exa…

國標GB/T 12536-90滑行試驗全解析:純電動輕卡行駛阻力模型參數精準標定

摘要 本文以國標GB/T 12536-90為核心框架&#xff0c;深度解析純電動輕卡滑行試驗的完整流程與數據建模方法&#xff0c;提供&#xff1a; 法規級試驗規范&#xff1a;從環境要求到數據采集全流程詳解行駛阻力模型精準標定&#xff1a;最小二乘法求解 ( FAv^2BvC ) 的MATLAB實…

【GaussDB遷移攻略】DRS支持CDC,解決大規模數據遷移挑戰

目錄 1 背景介紹 2 CDC的實現原理 3 DRS的CDC實現方式 4 DRS的CDC使用介紹 5 總結 1 背景介紹 隨著國內各大行業數字化轉型的加速&#xff0c;客戶的數據同步需求越來越復雜。特別是當需要將一個源數據庫的數據同時遷移到不同的目標庫場景時&#xff0c;華為云通常會創建…

PSA Certified

Arm 推出的 PSA Certified 已成為安全芯片設計領域的黃金標準。通過對安全啟動、加密服務以及更新協議等方面制定全面的要求&#xff0c;PSA Certified為芯片制造商提供了清晰的路線圖&#xff0c;使其能將安全機制深植于定制芯片解決方案的基礎架構中。作為對PSA Certified的補…

游戲引擎學習第286天:開始解耦實體行為

回顧并為今天的內容定下基調 我們目前正在進入實體系統的一個新階段&#xff0c;之前我們已經讓實體的移動系統變得更加靈活&#xff0c;現在我們想把這個思路繼續延伸到實體系統的更深層次。今天的重點&#xff0c;是重新審視我們處理實體類型&#xff08;entity type&#x…

遙感圖像非法采礦礦區識別分割數據集labelme格式1818張3類別

數據集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;僅僅包含jpg圖片和對應的json文件) 圖片數量(jpg文件個數)&#xff1a;1818 標注數量(json文件個數)&#xff1a;1818 標注類別數&#xff1a;3 標注類別名稱:["river","illegal-mining"…

python爬蟲實戰訓練

前言&#xff1a;哇&#xff0c;今天終于能訪問豆瓣了&#xff0c;前幾天爬太多次了&#xff0c;網頁都不讓我訪問了&#xff08;要登錄&#xff09;。 先來個小練習試試手吧&#xff01; 爬取豆瓣第一頁&#xff08;多頁同上篇文章&#xff09;所有電影的排名、電影名稱、星…

Go語言實現生產者-消費者問題的多種方法

Go語言實現生產者-消費者問題的多種方法 生產者-消費者問題是并發編程中的經典問題&#xff0c;涉及多個生產者生成數據&#xff0c;多個消費者消費數據&#xff0c;二者通過緩沖區&#xff08;隊列&#xff09;進行協調&#xff0c;保證數據的正確傳遞和同步。本文將從簡單到…

【Opencv】canny邊緣檢測提取中心坐標

采用opencv 對圖像中的小球通過canny邊緣檢測的方式進行提取坐標 本文介紹了如何使用OpenCV對圖像中的小球進行Canny邊緣檢測&#xff0c;并通過Zernike矩進行亞像素邊緣檢測&#xff0c;最終擬合橢圓以獲取小球的精確坐標。首先&#xff0c;圖像被轉換為灰度圖并進行高斯平滑…

藍橋杯12屆國B 123

題目描述 小藍發現了一個有趣的數列&#xff0c;這個數列的前幾項如下&#xff1a; 1,1,2,1,2,3,1,2,3,4,? 小藍發現&#xff0c;這個數列前 1 項是整數 1&#xff0c;接下來 2 項是整數 1 至 2&#xff0c;接下來 3 項是整數 1 至 3&#xff0c;接下來 4 項是整數 1 至 4&…

鴻蒙OSUniApp 制作動態加載的瀑布流布局#三方框架 #Uniapp

使用 UniApp 制作動態加載的瀑布流布局 前言 最近在開發一個小程序項目時&#xff0c;遇到了需要實現瀑布流布局的需求。眾所周知&#xff0c;瀑布流布局在展示不規則尺寸內容&#xff08;如圖片、商品卡片等&#xff09;時非常美觀和實用。但在實際開發過程中&#xff0c;我…

ThinkStation圖形工作站進入BIOS方法

首先視頻線需要接在獨立顯卡上&#xff0c;重新開機&#xff0c;持續按F1&#xff0c;或者顯示器出來lenovo的logo的時候按F1&#xff0c;這樣就進到bios里了。聯*想*坑&#xff0c;戴爾貴。靠。

【源碼級開發】Qwen3接入MCP,企業級智能體開發實戰!

Qwen3接入MCP智能體開發實戰&#xff08;上&#xff09; 一、MCP技術與Qwen3原生MCP能力介紹 1.智能體開發核心技術—MCP 1.1 Function calling技術回顧 如何快速開發一款智能體應用&#xff0c;最關鍵的技術難點就在于如何讓大模型高效穩定的接入一些外部工具。而在MCP技術…

Linux下載與安裝

一、YUM 1.1 什么是YUM 在CentOS系統中&#xff0c;軟件管理方式通常有三種方式&#xff1a;rpm安裝、yum安裝以及編譯&#xff08;源碼&#xff09;安裝。 編譯安裝&#xff0c;從過程上來講比較麻煩&#xff0c;包需要用戶自行下載&#xff0c;下載的是源碼包&#xff0c;需…

PostgreSQL中的全頁寫

一、概述 在PGSQL數據庫中&#xff0c;默認的頁面大小為8KB&#xff0c;但是磁盤buffer的大小為4KB&#xff0c;扇區大小為512B。這就導致在操作系統的角度看數據庫的寫操作&#xff0c;其實并不是一種原子操作。如果操作系統發生了系統級別的故障&#xff0c;此時正好操作系統…

WEB安全--Java安全--shiro550反序列化漏洞

一、前言 什么是shiro&#xff1f; shiro是一個Apache的Java安全框架 它的作用是什么&#xff1f; Apache Shiro 是一個強大且靈活的 Java 安全框架&#xff0c;用于處理身份驗證、授權、密碼管理以及會話管理等功能 二、shiro550反序列化原理 1、用戶首次登錄并勾選記住密碼…

2024 睿抗機器人開發者大賽CAIP-編程技能賽-專科組(國賽)解題報告 | 珂學家

前言 題解 2024 睿抗機器人開發者大賽CAIP-編程技能賽-專科組&#xff08;國賽&#xff09;&#xff0c;陳越姐姐出題。 國賽比省賽&#xff0c;難度增強了不少&#xff0c;題目就剩下4個題了。 涉及堆棧&#xff0c;hash表&#xff0c;優先隊列等高階數據結構的使用&#x…