算法修煉-動態規劃之路徑問題(1)

62. 不同路徑 - 力扣(LeetCode)

????????思路:選定一個網格為終點,走到這個網格的所有走法就是這個網格的上面一個網格的所有走法加上這個網格左邊一個網格的所有走法,然后做好初始化工作就行。?

class Solution {
public:int uniquePaths(int m, int n) {//dp表int arr[m][n];//特殊處理if(m == 1 || n == 1)return 1;//初始化for(int i = 0; i<m; i++){arr[i][0] = 1;}for(int i = 0; i<n; i++){arr[0][i] = 1;}//狀態轉移方程for(int i = 1; i<m; i++){for(int j = 1; j<n; j++){arr[i][j] = arr[i][j-1] + arr[i-1][j];}}return arr[m-1][n-1];}
};

63. 不同路徑 II - 力扣(LeetCode)

????????思路: 這道題可以看做事上面那道題的升級版,我的思路就是先將創建出來的dp表先全部初始化為0,在狀態轉移方程中,如果遇到障礙物,就保持dp表中障礙物位置的值仍為0,其余位置的值為它的上面加上它的左邊。這時有人可能就會有疑問了,如果一個位置的左邊或者是上面為障礙物不影響賦值嗎?答案是不影響的。因為障礙物位置的值就是0,加上跟沒加沒有區別,所以可以統一加上。

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {   //dp表int m = obstacleGrid.size();int n = obstacleGrid[0].size();vector<vector<int>> dp(m, vector<int>(n));//初始化for(int i = 0; i<n; i++){if(obstacleGrid[0][i] == 0)dp[0][i] = 1;elsebreak;}for(int i = 0; i<m; i++){if(obstacleGrid[i][0] == 0)dp[i][0] = 1;elsebreak;}//狀態轉移方程for(int i= 1; i<m; i++){for(int j = 1; j<n; j++){if(obstacleGrid[i][j] != 1)dp[i][j] = dp[i-1][j] + dp[i][j-1];}}return dp[m-1][n-1];

LCR 166. 珠寶的最高價值 - 力扣(LeetCode)

?????????思路:這題采用的方法略微跟上面兩題不同,這一題的dp表我多補了一行和一列,通過比較所在位置的上面一個位置和左邊一個位置誰大,加上值大的那個位置,只不過這種方法要注意兩個表之間下標的對應關系。

class Solution {
public:int jewelleryValue(vector<vector<int>>& frame) {//dp表int m = frame.size();int n = frame[0].size();vector<vector<int>> dp(m+1, vector<int>(n+1));//初始化+狀態轉移方程for(int i = 1; i<=m ;i++){for(int j = 1; j<=n; j++){if(dp[i-1][j] < dp[i][j-1]){dp[i][j] += frame[i-1][j-1]+dp[i][j-1];}else{dp[i][j] += frame[i-1][j-1] + dp[i-1][j];}}}return dp[m][n];}
};

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

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

相關文章

MATLAB環境下基于偏置場校正的改進模糊c-均值聚類圖像分割算法

基于聚類的分割方法是以統計學為基礎提出的一種分割方法。其實質是通過計算像素與每一類聚類中心的歐氏距離來判定像素與每一類聚類中心的相似性&#xff0c;距離近就說明像素與聚類中心相似性大&#xff0c;反之相似性小。基于一定標準下的相似性自動劃分成若干個子集(類)&…

markdown筆記(自用)

一.標題語法#空格&#xff0c;幾個#就是幾級標題 四級標題<H> 二.段落語法 用空白行分開 你好 三.換行 在一行的末尾添加兩個或多個空格&#xff0c;然后 v vvvvv 按回車鍵,即可創建一個換行()。 換行與段落的區別在于換行后兩行是挨著的&#xff0c;而段落之間有一…

項目預備知識

導入兩個頭文件 #include <graphics.h> // 引入 EasyX 的圖形庫頭文件 #include <conio.h> // 引入 conio.h 以使用 getch() 窗口創建函數&#xff1a;小黑屏 initgraph(640, 480, SHOWCONSOLE); closegraph(); //關閉一個窗口 設置背景顏色&#xff1a;這…

10.7、華為數通HCIP-DataCom H12-821單選題:121-140

121、關于OSPF特性描述錯誤的是:D A、OSPF采用鏈路狀態算法。 B、每個路由器通過泛洪 LSA 向外發布本地鏈路狀態信息 C、每臺 OSPF 設備都會收集其它路由器發來的LSA 所有的LSA 放在一起便組成了鏈路狀態數據庫LSDB, D、OSPF 區域0中所有路由器的 LSDB 都相同。 E、每臺…

【無標題】TMGM官網平臺切爾西足球俱樂部合作

TMGM作為一家在三大洲均設有辦事處的行業領導者&#xff0c;TMGM 被視為可靠的差價合約交易提供商&#xff0c;其重點是監管合規、技術創新與他聯系?&#x1f6f0;?TMGM818卓越的客戶服務。 切爾西足球俱樂部在亞太地區擁有龐大的球迷群體&#xff0c;并在該地區建立了多種亞…

2024年騰訊云優惠政策_騰訊云TOP10優惠活動

騰訊云服務器多少錢一年&#xff1f;62元一年起&#xff0c;2核2G3M配置&#xff0c;騰訊云2核4G5M輕量應用服務器218元一年、756元3年&#xff0c;4核16G12M服務器32元1個月、312元一年&#xff0c;8核32G22M服務器115元1個月、345元3個月&#xff0c;騰訊云服務器網txyfwq.co…

AOP案例(黑馬學習筆記)

需求 需求&#xff1a;將案例中增、刪、改相關接口的操作日志記錄到數據庫表中 ● 就是當訪問部門管理和員工管理當中的增、刪、改相關功能接口時&#xff0c;需要詳細的操作日志&#xff0c;并保存在數據表中&#xff0c;便于后期數據追蹤。 操作日志信息包含&#xff1a; ●…

IO多路轉接

1.select 初識select 系統提供 select 函數來實現多路復用輸入 / 輸出模型 . select 系統調用是用來讓我們的程序監視多個文件描述符的狀態變化的 ; 程序會停在 select 這里等待&#xff0c;直到被監視的文件描述符有一個或多個發生了狀態改變 ; select函數模型 select的函…

服務器硬件得基礎知識介紹

服務器硬件是計算機硬件的一種&#xff0c;專門用于構建服務器系統。服務器硬件通常具有高性能、高可靠性和可擴展性等特點&#xff0c;以滿足企業級應用的需求。本文將從以下幾個方面介紹服務器硬件的基礎知識&#xff1a;服務器概述、CPU、內存、存儲、網絡、電源和散熱、服務…

【機器學習】CIFAR-10數據集簡介、下載方法(自動)

【機器學習】CIFAR-10數據集簡介、下載方法(自動) &#x1f308; 個人主頁&#xff1a;高斯小哥 &#x1f525; 高質量專欄&#xff1a;Matplotlib之旅&#xff1a;零基礎精通數據可視化、Python基礎【高質量合集】、PyTorch零基礎入門教程&#x1f448; 希望得到您的訂閱和支…

0904多元復合函數求導-多元函數微分法及其應用

文章目錄 1 復習一元函數復合函數求導2 一元函數與多元函數復合的情形3 多元函數與多元函數復合的情形4 其他情形5 抽象復合函數求導6 全微分不變性結語 1 復習一元函數復合函數求導 y f ( u ) , u ? ( x ) ? f [ ? ( x ) ] d y d x d y d u ? d u d x f ′ ( u ) ? ?…

Python正則表達式:從基礎到高級應用的全面總結與實戰【第103篇—JSON模塊】

Python正則表達式&#xff1a;從基礎到高級應用的全面總結與實戰 正則表達式是一種強大的文本匹配和處理工具&#xff0c;廣泛應用于文本處理、數據抽取、表單驗證等領域。本文將從正則表達式的基礎知識出發&#xff0c;逐步深入&#xff0c;最終結合代碼實戰&#xff0c;帶你…

趙文彬將出席無磷鍋爐工藝助劑在鍋爐水節水節能應用

演講嘉賓&#xff1a;趙文彬 集團副總/技術總監 上遠未來水務集團有限公司 演講題目&#xff1a;無磷鍋爐工藝助劑在鍋爐水節水節能方面的應用 會議簡介 “十四五”規劃中提出&#xff0c;提高工業、能源領城智能化與信息化融合&#xff0c;明確“低碳經濟”新的戰略目標&a…

mac 安裝hbuilderx

下載 HBuilderX下載地址: 下載地址 選額mac版本點擊下載 安裝 如圖&#xff0c;將HBuilderX拖到Applications&#xff0c;才是正確的安裝姿勢。 MacOSX&#xff0c;軟件必須安裝到/Applications目錄&#xff0c;如未安裝到此目錄&#xff0c;可能會出現插件安裝失敗、項目創建…

基于BERTopic模型的中文文本主題聚類及可視化

文章目錄 BERTopic簡介模型加載地址文本加載數據處理BERTopic模型構建模型結果展示主題可視化總結BERTopic簡介 BERTopic論文地址:BERTopic: Neural topic modeling with a class-based TF-IDF procedure BERTopic是一種結合了預訓練模型BERT和主題建模的強大工具。它允許我…

Linux中的動靜態庫

目錄 一、靜態庫 &#xff08;1&#xff09;靜態庫的優缺點&#xff1a; &#xff08;2&#xff09;Linux下靜態庫的創建和執行 1.直接編譯?編輯 2.指定路徑和庫名 3.用LIBRARY_PATH環境變量來配置路徑 二、動態庫 &#xff08;1&#xff09;動態庫的優缺點 &#xff…

javaweb請求與響應

前言 前面介紹了對應的服務器端的相關代碼。這里開始學習服務器端與客戶端的數據請求與響應 這里的僅僅是一個簡單的調用&#xff0c;并沒有經過servelert接口來進行調用&#xff0c;同前面的一樣&#xff0c;我們介紹對應的本地服務器進行的部署項目。 代碼 //屬于簡單的不…

Java學習—線程的創建

Java 中的多線程是一種強大的機制&#xff0c;允許程序同時執行兩個或兩個以上的部分。這些同時執行的部分被稱為線程&#xff0c;它們可以使程序的執行更加高效&#xff0c;特別是在進行大量計算或等待資源&#xff08;比如網絡資源或文件系統&#xff09;時。Java 提供了在程…

Scratch 第十三課-飛機大戰游戲

第十三課-飛機大戰游戲 學習目標 這節課我們做一款大家都愛玩的飛機大戰游戲&#xff0c;學習重點&#xff1a; 如何導入外部角色如何讓飛機發射子彈鼠標控制角色移動 程序設計 程序分析 &#xff1a; 飛機大戰游戲相信很多小朋友都玩過&#xff0c;我方飛機在下方&#xf…

LabVIEW石油鉆機提升系統數字孿生技術

LabVIEW石油鉆機提升系統數字孿生技術 隨著數字化、信息化、智能化的發展&#xff0c;石油鉆采過程中的石油鉆機數字化技術提升成為了提高鉆井效率、降低生產成本的重要途徑。基于中石油云平臺提供的數據&#xff0c;采用數字孿生技術&#xff0c;對石油鉆機提升系統進行數字化…