動態規劃---三角矩陣最小路徑
{
int n;
//int *dp;
vector<int> dp;
cin>>n;
vector<vector<int> >triangle(100,vector<int>(100,0));//100*100的二維數陣列
//int triangle[100][100]={0};
int i=1;
int j=1;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
cin>>triangle[i][j];
}
}
cout<<triangle[4][4]<<endl;
dp=triangle[n]; //dp指向三角矩陣的第n行
for(i=n-1;i>=1;i--)
{
for(j=1;j<=i;j++)
dp[j]=min(dp[j+1],dp[j])+triangle[i][j];//dp[j]表示第i行j列的元素開始到最底層的路徑(顯然只有兩條路--第i+1行j列/j+1列,然後再加上第i行j列的元素)
}
cout<<dp[1]<<endl;
return 0;
}
相關推薦
動態規劃---三角矩陣最小路徑
int main() { int n; //int *dp; vector<int> dp; cin>>n; vector<vector<int> >triangle(100,vector<int>(100,0));//100*100的二維
#動態規劃 LeetCode 64 最小路徑和
bsp length 位置 根據 說明 font span 輸入 思考 給定一個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。 說明:每次只能向下或者向右移動一步。 示例: 輸入: [ [1,3,1], [1,5,1
算法52-----矩陣最小路徑【動態規劃】
sum data 列表 路徑 二次 解釋 示例 一行 lse 一、題目:矩陣最小路徑 給定一個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。 說明:每次只能向下或者向右移動一步。 示例: 輸入: [ [1,3,1],
【經典動態規劃問題】矩陣最小路徑和問題
題目內容: 有一個矩陣map,它每個格子有一個權值。從左上角的格子開始每次只能向右或者向下走,最後到達右下角的位置,路徑上所有的數字累加起來就是路徑和,返回所有的路徑中最小的路徑和。 給定一個矩陣map及它的行數n和列數m,請返回最小路徑和。保證行列數均小於等於100. 測試樣例:
動態規劃-矩陣最小路徑和
題目描述 有一個矩陣map,它每個格子有一個權值。 從左上角的格子開始每次只能向右或者向下走,最後到達右下角的位置,路徑上所有的數字累加起來就是路徑和。 返回所有的路徑中最小的路徑和。 給定一個矩陣map及它的行數n和列數m,請返回最小路徑和。 求解過程 給定一個N*M的矩
動態規劃3:矩陣最小路徑和問題
題目:有一個矩陣map,它每個格子有一個權值。從左上角的格子開始每次只能向右或者向下走,最後到達右下角的位置,路徑上所有的數字累加起來就是路徑和,返回所有的路徑中最小的路徑和。 給定一個矩陣map及它的行數n和列數m,請返回最小路徑和。保證行列數均小於等於100. 測試樣例
動態規劃--矩陣最小路徑和
int min(int a, int b) { if (a < b) return a; else return b; } int getMin(vector<vector<int> > map, int
圖論動態規劃演算法——Floyd最短路徑
前言 推出一個新系列,《看圖輕鬆理解資料結構和演算法》,主要使用圖片來描述常見的資料結構和演算法,輕鬆閱讀並理解掌握。本系列包括各種堆、各種佇列、各種列表、各種樹、各種圖、各種排序等等幾十篇的樣子。 Floyd演算法 Floyd是一種經典的多源最短路徑演算法,它通過動態規劃的思想來尋找給定加權圖中的多源
POJ 1463 淺談簡單樹形動態規劃及樹上最小點覆蓋
世界真的很大 很多經典的圖論問題放在樹上就顯得簡單 二分圖的最小點覆蓋 這裡就變成了一個簡單的樹形DP而已 看題先: description: 鮑勃喜歡玩電腦遊戲,特別是戰略遊
動態規劃——迴文最小分割數(palindrome-partitioning-ii)
題目: 給定一個字串str,返回把str全部切成迴文子串的最小分割數。 舉例: str="ABA" ,不需要切割,返回0; str="ACDCDCDAD",最少需要切兩次,比如"A","CDCDC"
動態規劃思想之最小硬幣分配數
動態規劃演算法,第一次接觸大概也是一年多前了,那會為了參加個ACM競賽,倉促看了下概念,之後由於去搞各種開發又對演算法不了了之了。最近深感自己內功的薄弱,準備再次進軍下演算法部分,今天就以一個簡單的OJ題練練手,好好體會下DP思想,並留下點感想,可以給自己日後回
演算法學習之動態規劃--數字三角形最大路徑和
題目: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的數字三角形中尋找一條從頂部到底邊的路徑,使得路徑上所經過的數字之和最大。路徑上的每一步都只能往左下或右下走。只需要求出這個最大和即可,不必給出具體路徑。三角形的行數大於1小於
動態規劃C++實現--最小編輯代價
題目:給定兩個字串 str1 和 str2,再給定三個整數 ic, dc 和 rc,分別代表插入、刪除和替換1個字元的代價, 返回 str1 編輯成 str2 的代價。舉例: str1 = "abc", str2 = "adc", ic = 5
C++求矩陣最小路徑和進階方法空間複雜度O(min {row, col})
#include <iostream> int minPathSum_pro(const int(*pArr) [10], const int &row, const int &col); int main() {int row = 0, col
【刷題之路】矩陣最小路徑
有一個矩陣map,它每個格子有一個權值。從左上角的格子開始每次只能向右或者向下走,最後到達右下角的位置,路徑上所有的數字累加起來就是路徑和,返回所有的路徑中最小的路徑和。 給定一個矩陣map及它的行數n和列數m,請返回最小路徑和。保證行列數均小於等於100. 經典動態
數字三角形最小路徑和—動態規劃
div 路徑和 image 動態 節點 spa 直接 .cn 一行 思路:自底向上求解,從倒數第二行開始,本行節點到最後一行的最小路徑和等於該節點的數據加上下面左右兩個數據中最小的一個。不使用額外空間,直接將最小路徑和存儲到原有的數組中。1 int minimumTota
算法學習——動態規劃之點數值三角形的最小路徑
頂點 結果 等於 system.in lag -- 技術分享 4行 info 算法描述 在一個n行的點數值三角形中,尋找從頂點開始每一步可沿著左斜或者右斜向下直到到達底端,使得每個點上的數值之和為最小 右圖為一個4行的點數值三角形 算法思路 接收用戶輸入行數n 使用
29.動態規劃-三角形最小路徑和-Leetcode 120(python)
問題描述及示例 給定一個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。 例如,給定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自頂向下的最小路徑和為 11(即,2 
LeetCode-120.三角形最小路徑和(相關話題:動態規劃)
給定一個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。 例如,給定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自頂向下的最小路徑和為 11(即,2 + 3 + 5 + 1 = 11)。 說明:
動態規劃-最小路徑和
給定一個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。 說明:每次只能向下或者向右移動一步。 示例: 輸入: [ [1,3,1], [1,5,1], [4,2,1] ] 輸出: 7 解釋: