2025年- H92-Lc200-- 64.最小路徑和(多維動態規劃)--Java版

1.題目描述

在這里插入圖片描述
在這里插入圖片描述

2.思路

(1)dp[i][j] 表示從起點 (0,0) 走到位置 (i,j) 的最小路徑和
(2)對于位置 (i, j),只能從 上面 (i-1,j) 或 左邊 (i,j-1) 走過來,所以:
dp[i][j] = grid[i][j] + min(dp[i-1][j], dp[i][j-1])
當前格子總路徑和 = 當前格子的值 + 從上或左走過來的最小路徑和
(3)初始化,從起點到起點的路徑和(只有這一個格子),要“消耗”這個格子的值了,所以路徑和初始就是 1。
起點:dp[0][0] = grid[0][0]
第一行只能從左邊走來:
dp[0][j] = dp[0][j-1] + grid[0][j]; // for j in 1…n-1
第一列只能從上面走來:
dp[i][0] = dp[i-1][0] + grid[i][0]; // for i in 1…m-1

(4)遍歷順序:
必須從上到下、從左到右,因為 dp[i][j] 依賴于 dp[i-1][j] 和 dp[i][j-1]。

3.代碼實現

class Solution {public int minPathSum(int[][] grid) {//行數,grid[m][n]是存儲最小數據和的數據int m=grid.length;//列數int n=grid[0].length;if(m==0||n==0){//只有一行或者一列的情況,不滿足找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。return 0;}//向右走,進行數組初始化,初始化第一行,也就是列數n會增加for(int j=1;j<n;j++){//因為是求最小路徑和,當前元素的值,等于他左邊元素加上當前元素的值grid[0][j]=grid[0][j]+grid[0][j-1];}//向下走,初始化第一列for(int i=1;i<m;i++){grid[i][0]=grid[i][0]+grid[i-1][0];}for(int j=1;j<n;j++){//每次只能向右走for(int i=1;i<m;i++){//每次只能向下走grid[i][j]=grid[i][j]+Math.min(grid[i-1][j],grid[i][j-1]);}}return grid[m-1][n-1];}
}

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

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

相關文章

CHAIN(GAN的一種)訓練自己的數據集

簡介 簡介:作者針對數據有限場景下GANs訓練中的判別器過擬合問題,提出了CHAIN(Lipschitz連續性約束歸一化)方法。作者首先從理論角度分析了GAN泛化誤差,發現減少判別器權重梯度范數對提升泛化能力至關重要。然后深入研究了批歸一化(BN)在GAN判別器中應用困難的根本原因…

3D建模公司的能力與技術

在數字化時代&#xff0c;3D建模公司扮演著越來越重要的角色。它們是專業從事三維建模設計服務的機構或團隊&#xff0c;利用先進的三維建模軟件和技術&#xff0c;為客戶提供從概念設計到最終成品的全流程服務。這些服務廣泛應用于建筑設計、工程規劃、產品設計、動畫制作等多…

《深度剖析:5G網絡切片如何精準保障不同業務QoS需求》

5G網絡切片技術依托網絡功能虛擬化(NFV)和軟件定義網絡(SDN)兩大核心技術。NFV就像一位神奇的變形師,把傳統硬件網絡功能,如路由器、防火墻、基站等,轉化為軟件模塊,讓它們能運行在通用硬件平臺上。如此一來,硬件資源得以擺脫傳統網絡功能的束縛,實現靈活調配。例如,…

力扣hot100題(1)

目錄 1、兩數之和2、移動零3、相交鏈表4、有效的括號5、反轉鏈表6、回文鏈表7、環形鏈表8、環形鏈表II9、合并兩個有序鏈表10、二叉樹的中序遍歷 1、兩數之和 1. 兩數之和 - 力扣&#xff08;LeetCode&#xff09; 方法1&#xff1a; class Solution {public int[] twoSum(i…

C++的回顧與學習之C++入門基礎

目錄 1、C入門 1&#xff09;C關鍵字 2&#xff09;命名空間 3&#xff09;C中的輸入輸出 4&#xff09;缺省參數 5&#xff09;函數重載 6&#xff09;引用 引用和指針的不同點&#xff1a; 7&#xff09;auto關鍵字 8&#xff09;內聯函數 9&#xff09;指針空值nu…

【使用Android Studio調試手機app時候手機老掉線問題】

如果你各種方式都嘗試失敗了&#xff0c; 請看這里 連接時候通過logcat查看你手機Android的平臺去SDK下載所有對應的平臺SDK重新連接嘗試

二叉樹題解——驗證二叉搜索樹【LeetCode】前序遍歷

98. 驗證二叉搜索樹 &#x1f50d; 題目目標 判斷一棵二叉樹是否為有效的二叉搜索樹&#xff08;BST&#xff09;&#xff0c;定義如下&#xff1a; 左子樹所有節點 < 根節點 右子樹所有節點 > 根節點 且左右子樹也必須是二叉搜索樹 一、算法邏輯&#xff08;逐步通…

Javaweb - 10.3 Servlet 生命周期

目錄 生命周期簡介 生命周期測試 load-on-startup 補充&#xff1a;defaultServlet Servlet 的繼承結構 1. 頂級的 Servlet 接口 2. 抽線的類 GenericServlet 3. HttpServlet 抽象類 4. 自定義 Servlet 補充&#xff1a; 完&#xff01; 生命周期簡介 什么是生命周…

RSA數字簽名方案的C語言實現(帶測試)

RSA 算法的 C語言實現通常比較復雜&#xff0c;但已經有許多密碼算法庫實現了 RSA 算法&#xff0c;例如OpenSSL、Libgcrypt? 和 Botan ?等。我們可以在這些庫的基礎上進行配置或移植&#xff0c;從而快速實現密碼算法。但這些庫主要面向大量設備進行優化&#xff0c;如通用計…

創客匠人視角:知識變現與創始人 IP 打造的破局之道

當知識付費從流量紅利期進入精耕細作階段&#xff0c;為何專業能力強的內容創作者反而難以變現&#xff1f;創客匠人通過 1500 案例陪跑發現&#xff1a;缺乏 IP 思維的知識輸出如同霧中航行&#xff0c;而創始人 IP 打造正是連接知識價值與商業變現的核心橋梁。一、定位重構&…

結構分析設計軟件 SCIA Engineer 25.0 x64

詳情 Nemetschek SCIA Engineer是一家從事多項目編程、分析和軟件設計的公司。該軟件具有廣泛的不同功能。該軟件可用于以簡單的方式設計建筑物、工業工廠和橋梁。 Nemetschek SCIA Engineer軟件的特點和功能&#xff1a; BIM模型人 使用網格和故事 3D風 自由負載 互聯網…

怎么處理[TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark

這個錯誤說明 Elasticsearch 的磁盤空間嚴重不足&#xff0c;已觸及最高級別&#xff08;flood-stage&#xff09;的水位線。作為自我保護機制&#xff0c;Elasticsearch ?自動將受影響的索引設置為只讀模式 (read-only-allow-delete)?&#xff0c;從而阻止寫入操作&#xff…

pytorch學習-11卷積神經網絡(高級篇)

2.線性模型 3.梯度下降算法 4.反向傳播(用pytorch算梯度) 5.用pytorch實現線性回歸 6.logistic回歸 7.處理多維特征的輸入 8.加載數據集 9.多分類問題 10.卷積神經網絡(基礎篇) 11.卷積神經網絡&#xff08;高級篇&#xff09;_嗶哩嗶哩_bilibili 11.1 GoogleNet Google…

ubuntu 安裝QT

在 Ubuntu 系統上安裝 Qt 可以通過以下步驟完成&#xff0c;以下是詳細的安裝指南 &#xff1a; 1. 安裝前的準備工作 在開始安裝 Qt 之前&#xff0c;需要確保你的 Ubuntu 系統已經更新到最新版本&#xff0c;并且安裝了一些必要的依賴。 1.1 更新系統 首先&#xff0c;打…

CppCon 2018 學習:RAPID PROTOTYPING OF GRAPHICS SHADERS IN

這段內容在講**著色器&#xff08;Shader&#xff09;**的基礎概念&#xff0c;尤其是它在現代 GPU&#xff08;圖形處理單元&#xff09;中的作用。以下是逐條解釋與理解&#xff1a; “Depicting depth perception in 3D models or illustrations by varying levels of darkn…

Angular v20版本正式發布

過去幾年對 Angular 來說很具變革性,我們推出了像 Signals 這樣的反應性功能和 Zoneless 應用的強大能力。我們希望這些功能可以幫助 Angular 社區構建下一代的 Web 應用,實現快速上市和強大的性能。 我們的旅程才剛剛開始!Angular v20 是最新的發布版本,我們花費了無數個小…

Oracle如何使用序列 Oracle序列使用教程

Oracle序列&#xff08;sequence&#xff09;是一種數據庫項&#xff0c;能夠生成一個整數序列。通常用于填充數字類型的主鍵列。 Oracle序列 Oracle序列使用教程&#xff1a; 1、創建序列&#xff1a; CREATE SEQUENCE sequence_name[START WITH start_num][INCREMENT BY incr…

深入探索 Vanna:讓數據庫交互更智能

深入探索 Vanna&#xff1a;讓數據庫交互更智能 在數字化時代&#xff0c;與數據庫進行高效交互是許多開發者、數據分析師和企業面臨的挑戰。傳統的 SQL 查詢編寫不僅需要對數據庫結構有深入的了解&#xff0c;還需要花費大量的時間和精力來調試和優化。Vanna&#xff0c;一個…

C#上位機之網口通信與協議!

文章目錄前言一、網口通信概念二、使用網口通信準備三、使用步驟前言 C#上位機之網口通信與協議&#xff01; 一、網口通信概念 定義 &#xff1a;Socket 可以理解為一個通信端點&#xff0c;它提供了應用程序與網絡之間的接口&#xff0c;使得應用程序能夠在網絡上發送和接收…

Android Studio 創建類時如何自動添加類注釋

打開IDEA或AS&#xff0c;點擊菜單欄File——Settings——Editor——File and Code Templates。 點擊右邊Tab頁的Includes&#xff0c;選擇File Header&#xff0c;修改類頭模版&#xff0c;如圖&#xff1a; 記得選中Project&#xff0c;否則默認是整個AS都會進行設置