LeetCode刷題記錄:(15)三角形最小路徑和

知識點:倒敘的動態規劃
題目傳送

在這里插入圖片描述

解法一:二維動態規劃【容易理解】
在這里插入圖片描述

class Solution {public int minimumTotal(List<List<Integer>> triangle) {int n = triangle.size();if (n == 1) {return triangle.get(0).get(0);}// dp[i][j]:走到第i層第j個的最小路徑和int[][] dp = new int[n + 1][n + 1];// 初始化左右兩側的值for (int i = 1; i <= n; i++) {dp[i][1] = dp[i - 1][1] + triangle.get(i - 1).get(0);dp[i][i] = dp[i - 1][i - 1] + triangle.get(i - 1).get(i - 1);}// 遞推中間的值for (int i = 3; i <= n; i++) {for (int j = 2; j < i; j++) {dp[i][j] = Math.min(dp[i - 1][j - 1], dp[i - 1][j]) + triangle.get(i - 1).get(j - 1);}}// 尋找最后一行最小值int min = dp[n][1];for (int j = 2; j <= n; j++) {if (dp[n][j] < min) {min = dp[n][j];}}return min;}
}

解法二:動態規劃 + 空間優化
在這里插入圖片描述在這里插入圖片描述

class Solution {public int minimumTotal(List<List<Integer>> triangle) {int n = triangle.size();// dp[j]:走到當前層第j個的最小路徑和int[] dp = new int[n];dp[0] = triangle.get(0).get(0);for (int i = 1; i < n; i++) {// 初始化第i行最后一個位置dp[i] = dp[i - 1] + triangle.get(i).get(i);// 滾動遞推第i行前面的位置, 【因為要用到上一行左邊的值,所以這里要倒序】for (int j = i - 1; j > 0; j--) {dp[j] = Math.min(dp[j - 1], dp[j]) + triangle.get(i).get(j);}// 更新第i行第一個位置的路徑和dp[0] += triangle.get(i).get(0);}// 尋找最后一行最小值int min = dp[0];for (int j = 1; j < n; j++) {if (dp[j] < min) {min = dp[j];}}return min;}
}

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

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

相關文章

[240705] 美光或將助力英偉達 RTX 50系列領先 AMD | 中國領跑生成式人工智能專利競賽

目錄 美光或將助力英偉達 RTX 50系列領先 AMD中國領跑生成式人工智能專利競賽 美光或將助力英偉達 RTX 50系列領先 AMD &#x1f4e2; 美光近日公布了其下一代顯存 GDDR7 的性能數據&#xff0c;顯示出在游戲性能方面高達30%的提升&#xff0c;這對于即將推出的顯卡來說無疑是…

白騎士的C語言教學基礎篇 1.2 C語言基礎語法

系列目錄 上一篇&#xff1a;白騎士的C語言教學基礎篇 1.1 C語言介紹 在這一篇內容中&#xff0c;我們將介紹C語言的基礎語法&#xff0c;包括C語言的程序結構、數據類型與變量、常量與運算符。 C語言程序結構 C語言程序的基本結構包括頭文件、主函數和語句。一個簡單的C語言…

Java+前后端分離架構+ MySQL8.0.36產科信息管理系統 產科電子病歷系統源碼

Java前后端分離架構 MySQL8.0.36產科信息管理系統 產科電子病歷系統源碼 產科信息管理系統—住院管理 數字化產科住院管理是現代醫院管理中的重要組成部分&#xff0c;它利用數字化技術優化住院流程&#xff0c;提升醫療服務質量和效率。以下是對數字化產科住院管理的詳細闡述…

【Spring Boot】統一異常處理

目錄 統一異常處理一. 概念二. 全局異常處理三. 處理特定異常 統一異常處理 一. 概念 其實統一異常是運用了AOP&#xff08;對某一類事情的集中處理&#xff09;的思維&#xff0c;簡單概括就是在我們進行前后端數據交互的時候&#xff0c;拋出的任何的異常都能夠自動捕獲然后…

uniapp微信接口回調 response.sendRedirect nginx 報404錯誤

如題 參考 uniapp打包H5時,訪問index.html頁面白屏報錯net::ERR_ABORTED 404 - 簡書 nginx中修改 配置文件 location / { try_files $uri $uri/ /index.html; root html; index index.html index.htm; } uniapp里配置 重新載入

JavaScript常用包管理工具

NPM、Yarn、CNPM 和 PNPM 是 JavaScript 生態系統中常用的包管理工具。它們各自有不同的特點和優勢。以下是對它們的詳細解釋&#xff1a; 1. NPM (Node Package Manager) 簡介&#xff1a; NPM 是 Node.js 的默認包管理工具&#xff0c;也是最早出現的 JavaScript 包管理工具…

ingress-nginx控制器證書不會自動更新問題

好久沒更新了&#xff0c;正好今天遇到了一個很有意思的問題&#xff0c;在這里給大家分享下&#xff0c;同時也做下記錄。 背景 最近想做個實驗&#xff0c;當k8s集群中secret更新后&#xff0c;ingress-nginx控制器會不會自動加載新的證書。我用通義千問搜了下&#xff0c;…

什么是FPGA的基本組成單元?

FPGA&#xff08;Field-Programmable Gate Array&#xff09;的基本組成單元是其內部結構的關鍵組件&#xff0c;這些單元可以被編程來執行各種數字邏輯功能。FPGA的基本組成單元主要包括以下幾個部分&#xff1a; 可編程邏輯塊 (CLB, Configurable Logic Block) CLB是FPGA中最…

Airflow: 大數據調度工具詳解

歡迎來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;歡迎訂閱相關專欄&#xff1a; 歡迎關注微信公眾號&#xff1a;野老雜談 ?? 全網最全IT互聯網公司面試寶典&#xff1a;收集整理全網各大IT互聯網公司技術、項目、HR面試真題. ?? AIGC時代的創新與未來&a…

【CH32V305FBP6】移植 RT-Thread

文章目錄 前言實現修改鏈接文件移植 RTT 代碼修改啟動文件修改中斷文件修改主文件 前言 移植 RT-Thread 到 CH32V305FBP6。 實現 修改鏈接文件 .text :{. ALIGN(4);*(.text)*(.text.*)*(.rodata)*(.rodata*)*(.gnu.linkonce.t.*)/* section information for finsh shell */…

Go單元測試

Go 語言中&#xff0c;單元測試是通過標準庫中的 testing 包來實現的&#xff0c;該包提供了一組功能&#xff0c;使得編寫、運行和管理單元測試變得簡單和高效。 一、規則 測試文件的命名規則 Go 中的測試文件命名規則是在被測試的源文件名后面加上 _test.go。例如&#xff0…

matplotlib下載安裝

matplotlib下載安裝過程同之前寫的pygame很類似。 Pygame下載安裝 python官網 1.搜索matplotlib 直接點進去 查看歷史版本&#xff0c;因為新版本可能出現與python不匹配問題。 我選擇3.6.3版本&#xff0c;因為我安裝的python是3.8&#xff0c;可以匹配版本。同時window操…

Linux文件描述符與FILE指針互相轉換

目錄 1、文件描述符轉換為 FILE 指針 2、FILE 指針轉換為文件描述符 在Linux中&#xff0c;文件描述符&#xff08;file descriptor, fd&#xff09;和FILE指針&#xff08;也稱為文件流指針&#xff0c;FILE pointer&#xff09;是兩種常見的文件操作接口。文件描述符是一個…

Cesium與Three相機同步(3)

Cesium與Three融合的案例demo <!DOCTYPE html> <html lang"en" class"dark"><head><meta charset"UTF-8"><link rel"icon" href"/favicon.ico"><meta name"viewport" content&q…

C++ 類和對象 構造函數

一 類的6個默認成員函數&#xff1a; 如果一個類中什么成員都沒有&#xff0c;簡稱為空類。 例&#xff1a; #include <iostream> class Empty {// 空類&#xff0c;什么成員都沒有 }; 空類中真的什么都沒有嗎&#xff1f;并不是&#xff0c;任何類在什么都不寫時&a…

洛谷 P1035 [NOIP2002 普及組] 級數求和

本文由Jzwalliser原創&#xff0c;發布在CSDN平臺上&#xff0c;遵循CC 4.0 BY-SA協議。 因此&#xff0c;若需轉載/引用本文&#xff0c;請注明作者并附原文鏈接&#xff0c;且禁止刪除/修改本段文字。 違者必究&#xff0c;謝謝配合。 個人主頁&#xff1a;blog.csdn.net/jzw…

qt 讀取配置文件

在Qt中讀取配置文件&#xff0c;主要有以下幾種方法&#xff1a; 使用QFile和QTextStream類&#xff1a; 這種方法適用于讀取任意文本文件&#xff0c;包括配置文件。使用QFile的open()方法打開配置文件。使用QTextStream的readLine()方法逐行讀取配置數據。使用QXmlStreamRea…

谷粒商城學習-筆記大全

1&#xff0c;谷粒商城-01-項目介紹 2&#xff0c;谷粒商城筆記-02-項目整體效果展示 3&#xff0c;谷粒商城筆記-03-分布式基礎概念 4&#xff0c;谷粒商城筆記-04-項目微服務架構圖簡介 5&#xff0c;谷粒商城學習筆記-05-項目微服務劃分圖 6&#xff0c;谷粒商城學習-06-使用…

【LinuxC語言】手撕Http協議之accept_request函數實現(一)

文章目錄 前言accept_request函數作用accept_request實現解析方法根據不同方法進行不同操作http服務器響應格式unimplemented函數實現總結前言 在計算機網絡中,HTTP協議是一種常見的應用層協議,它定義了客戶端和服務器之間如何進行數據交換。在這篇文章中,我們將深入探討Li…

C++模塊化之內部類

目錄 1.引言 2.內部類的訪問控制 3.優缺點分析 4.實際運用 4.1.實現復雜數據結構 4.2.封裝細節實現 4.3.事件處理和回調 4.4.模板元編程輔助類 4.5. 訪問控制和封裝 4.6. 代碼組織和模塊化 5.總結 1.引言 在C中&#xff0c;內部類&#xff08;Nested Class&#xff…