63、不同路徑II

題目

解答:

初始化和特殊情況比較麻煩的dp

obstacleGrid(0,0)=1的,直接return 0即可。入口都被堵住了還怎么走。

m=n=1情況,直接判斷

第一行初始化:dp[1][0]->dp[i][0] 碰到有障礙物的,從當前格子開始到末尾全部置0,可以用flag實現,也可以用邏輯與和非實現。列同理

遞推:對當前(i,j)????????非障礙物時:dp[i][j]=dp[i-1][j]+dp[i][j-1] 有障礙物:dp[i][j]=0 也可以用邏輯去實現

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {if(obstacleGrid[0][0]) return 0;int m = obstacleGrid.size();int n = obstacleGrid[0].size();vector<vector<int>> dp(m,vector<int>(n));dp[0][0]=1;if(m==1&&n==1) return 1;//初始化第一列bool flagm=false;for(int i=1;i<m;i++){if(obstacleGrid[i][0]||flagm){flagm=true;dp[i][0]=0;}else {dp[i][0]=1;}}//初始化第一行bool flagn=false;for(int i=1;i<n;i++){if(obstacleGrid[0][i]||flagn){flagn = true;dp[0][i]=0;}else{dp[0][i]=1;}}for(int i=1;i<m;i++){for(int j=1;j<n;j++){if(obstacleGrid[i][j]==1){dp[i][j]=0;}else{dp[i][j]=dp[i-1][j]+dp[i][j-1];}}}return dp[m-1][n-1];}
};

時間復雜度O(mn)

空間復雜度O(mn),也可以優化

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

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

相關文章

wx小程序登錄設置角色

背景。pc端登錄后在訪問業務鏈接時可以根據固定獲取用戶的方法LoginUser user LoginHelper.getLoginUser(); 獲取到用戶信息。但wx端登錄后無法獲取。原因處在登陸時對用戶信息的設置方面pc端和小程序端登錄沒有使用相同的登錄方法。排除得知wx端小程序登錄時沒有設置角色。所…

MySQL5.7 慢查詢SQL語句集合

文章目錄 1. 按平均執行時間排序的慢查詢2. 按總執行時長排序的慢查詢3. MySQL 5.7 慢查詢配置檢查4. 掃描行數分析&#xff08;找出全表掃描&#xff09;5. 高頻執行的慢查詢6. 當前正在執行的查詢7. 慢查詢統計匯總8. 表結構和索引分析8.1 表索引詳情查詢8.2 表大小統計 1. 按…

MySQL學習(1)——基礎庫操作

歡迎來到博主的專欄:MySQL學習 博主ID:代碼小豪 文章目錄 數據庫原理基礎庫操作增刪數據庫數據庫編碼與校驗規則驗證不同的校驗規則對于庫中數據的影響 備份與恢復數據庫 數據庫原理 mysql版本:mysql8.0 操作系統:ubuntu22.4 為了減少由于環境配置以及權限限制帶來的使用問題&…

C++法則12:右值引用的核心目的:支持移動語義(Move Semantics)

C法則12&#xff1a;右值引用的核心目的&#xff1a;支持移動語義&#xff08;Move Semantics&#xff09; 右值引用&#xff08;Rvalue Reference&#xff09;是C11引入的最重要特性之一&#xff0c;其主要設計目的就是支持移動語義&#xff08;Move Semantics&#xff09;。 …

【LLM學習筆記4】使用LangChain開發應用程序(上)

目錄 前言一、模型、提示和解析器&#xff08;model、prompt、parsers&#xff09;二、儲存三、模型鏈四、基于文檔的問答1.使用向量存儲查詢2. 結合表征模型和向量存儲使用檢索問答鏈回答問題 前言 在前面兩部分&#xff0c;我們分別學習了大語言模型的基礎使用準則&#xff…

Negative Contrastive Estimation Negative Sampling

1. 基本概念與問題背景 1.1 大規模分類問題 在自然語言處理中&#xff0c;給定上下文 c c c預測單詞 w w w的條件概率為&#xff1a; P ( w ∣ c ) exp ? ( s θ ( w , c ) ) ∑ w ′ ∈ V exp ? ( s θ ( w ′ , c ) ) P(w|c) \frac{\exp(s_\theta(w,c))}{\sum_{w\in V…

Flink SQL Connector Kafka 核心參數全解析與實戰指南

Flink SQL Connector Kafka 是連接Flink SQL與Kafka的核心組件&#xff0c;通過將Kafka主題抽象為表結構&#xff0c;允許用戶使用標準SQL語句完成數據讀寫操作。本文基于Apache Flink官方文檔&#xff08;2.0版本&#xff09;&#xff0c;系統梳理從表定義、參數配置到實戰調優…

vscode內嵌瀏覽器實時預覽vue項目

安裝插件 web Preview 啟動vue項目 打開預覽 ctrl shift p 之后輸入并選擇 Open Web Preview 即可看到預覽窗口&#xff0c;但此時明明我的頁面是有內容的&#xff0c;但是窗口卻空白的。 因為默認訪問端口是3000&#xff0c;我們將其修改為vue項目默認的5173端口即可。 點…

計算機網絡:(四)物理層的基本概念,數據通信的基礎知識,物理層下面的傳輸媒體

計算機網絡&#xff1a;&#xff08;四&#xff09;物理層的基本概念&#xff0c;數據通信的基礎知識&#xff0c;物理層下面的傳輸媒體 前言一、物理層的基本概念1. 什么是物理層2. 物理層的核心使命3. 物理層的四大特性 二、數據通信的基礎知識1. 數據通信系統的基本模型1.1 …

Linux系統性能優化

目錄 Linux系統性能優化 一、性能優化概述 二、性能監控工具 1. 基礎工具 2. 高級工具 三、子系統優化策略 1. CPU優化 2. 內存優化 3. 磁盤I/O優化 4. 網絡優化 四、資源限制優化 1. ulimit 2. cgroups&#xff08;控制組&#xff09; 五、安全與注意事項 六、…

【streamlit streamlit中 顯示 mermaid 流程圖有兩種方式】

streamlit中顯示mermaid 流程圖有兩種方式 mermaind示例 code """ flowchart LRmarkdown["This **is** _Markdown_"]newLines["Line1Line 2Line 3"]markdown --> newLinesmarkdown["This **is** _Markdown_"]newLines[&quo…

Rust調用 DeepSeek API

Rust 實現類似 DeepSeek 的搜索工具 使用 Rust 構建一個高效、高性能的搜索工具需要結合異步 I/O、索引結構和查詢優化。以下是一個簡化實現的框架: 核心組件設計 索引結構 use std::collections::{HashMap, HashSet}; use tantivy::schema::{Schema, TEXT, STORED}; use …

Unity3D仿星露谷物語開發69之動作聲音

1、目標 Player動作時產生的聲音&#xff0c;比如砍倒樹木、砸石頭。 2、修復NPC快速行進的bug&#xff08;與本節無關&#xff09; 修改NPCMovement.cs腳本的MoveToGridPositionRoutine方法。 確保npcCalculatedSpeed的速度不少于最慢速度。 原代碼&#xff1a; 修改后的…

【Node.js 的底層實現機制】從事件驅動到異步 I/O

簡介 Node.js 作為 JavaScript 后端運行環境&#xff0c;其核心優勢在于高并發處理能力和非阻塞 I/O 模型。 特點&#xff1a; 高并發處理&#xff1a;單線程事件循環高效處理大量并發連接I/O 密集型任務&#xff1a;非阻塞 I/O 模型避免線程切換開銷&#xff0c;不適合 CPU…

nginx服務器配置時遇到的一些問題

京東云 CentOS 8.2 64位 Nginx配置文件修改后需要重啟或重載服務的原因以及不重啟的后果&#xff1a; ??工作進程不主動重讀配置??&#xff1a; Nginx采用master-worker多進程架構。master進程讀取配置文件并管理worker進程&#xff0c;worker進程處理實際請求。修改配置…

【論文閱讀 | CVPR 2024 |Fusion-Mamba :用于跨模態目標檢測】

論文閱讀 | CVPR 2024 |Fusion-Mamba &#xff1a;用于跨模態目標檢測 1.摘要&&引言2.方法2.1 預備知識2.2 Fusion-Mamba2.2.1 架構特征提取與多模態融合&#xff08;FMB模塊&#xff09;FMB的應用與輸出2.2.2 關鍵組件3.2.2.1 SSCS 模塊&#xff1a;淺層跨模態特征交互…

Nginx-Ingress-Controller自定義端口實現TCP/UDP轉發

背景1 使用deployment部署一個http服務&#xff0c;配合使用ingresstls的解析在ingress終止。 apiVersion: networking.k8s.io/v1 kind: Ingress metadata:annotations:name: test.comnamespace: rcs-netswitch-prod spec:defaultBackend:service:name: rcs-netswitch-prodpo…

基于Vue.js的圖書管理系統前端界面設計

一、系統前端界面設計要求與效果 &#xff08;一&#xff09;系統功能結構圖 設計一個基于Vue.js的圖書管理系統前端界面。要充分體現Vue的核心特性和應用場景&#xff0c;同時結合信息管理專業的知識。要求系統分為儀表盤、圖書管理、借閱管理和用戶管理四個主要模塊&#x…

Perplexity AI:對話式搜索引擎的革新者與未來認知操作系統

在信息爆炸的數字時代&#xff0c;傳統搜索引擎提供的海量鏈接列表已無法滿足用戶對高效、精準知識獲取的需求。Perplexity AI作為一款融合人工智能與實時網絡檢索的對話式搜索引擎&#xff0c;正通過技術創新重新定義人們獲取信息的方式。這家成立于2022年的硅谷初創企業&…

第七講 信號

1. 信號鋪墊 信號: Linux 系統提供的, 簡單輕量的, 用于向指定進程發送特定事件, 讓接受信號進程做識別和對應處理實現進程控制的一種異步通信機制. 1~31 普通信號 34 ~ 64 實時信號 信號概覽 下面是Linux系統中所有標準信號的名稱及其對應的數字&#xff1a; SIGHUP (1…