第十七週:120. Triangle
Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.
For example, given the following triangle
[ [2], [3,4], [6,5,7], [4,1,8,3] ]
The minimum path sum from top to bottom is 11
(i.e., 2 + 3 + 5 + 1 =
11).
我一開始是用貪心思想來做,每一行都取最小的數,但是發現不能通過,因為每行找到一個最小值,那麼這些最小值的路徑不一定滿足相鄰的條件。
錯誤程式碼如下:
int minimumTotal(int** triangle, int triangleRowSize, int *triangleColSizes) { int i,j; int sum=0; int mintemp; for(i=triangleRowSize-1;i>=0;i--) { mintemp=triangle[i][0]; for(j=0;j<triangleColSizes[i];j++) { if(mintemp<=triangle[i][j]) mintemp=triangle[i][j]; } sum+=mintemp; } return sum; }
接著想到一種辦法就是定義一個temp陣列儲存當前行的計算結果,對於當前行中的每一個元素,只需要找到上一行中和當前元素相鄰的2個元素
的最小值,然後把這兒最小值加上當前元素並更新temp陣列就可以了。不斷進行下去,直到最後一行為止。這個過程可以看做一個很簡單的動態規劃。
AC:
class Solution { public: int minimumTotal(vector<vector<int>>& triangle) { int size = triangle.size(); for(int i = size - 2;i >= 0;--i){ for(int j = 0;j <= i;++j){ triangle[i][j] += min(triangle[i+1][j],triangle[i+1][j+1]); } } return triangle[0][0]; } };
相關推薦
第十七週:120. Triangle
Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below. For examp
Ng第十七課:大規模機器學習(Large Scale Machine Learning)
在線 src 化簡 ima 機器學習 learning 大型數據集 machine cnblogs 17.1 大型數據集的學習 17.2 隨機梯度下降法 17.3 微型批量梯度下降 17.4 隨機梯度下降收斂 17.5 在線學習 17.6 映射化簡和數據並行
第十七節:易混淆的概念(靜態和非靜態、拆箱和裝箱)
博客 學生 margin tex OS 地址 add logs text 一. 靜態和非靜態 二. 拆箱和裝箱 1 ! 作 者 :
學習筆記第十七節:斜率優化Dp,四邊形不等式證明決策單調
正題 我就以這一題:玩具裝箱裝玩具來引入我們今天的話題。 我們先設f[i]表示前i個玩具裝的最小費用是多少。 那麼,很明顯就有我們列舉一個j,使得j+1到i裝
第十七篇:csv拆分、csv轉excel方法
首先對微軟的office功能表示敬佩!可能是這些辦公軟體太過平常化,所以體會不到他有多牛!csv格式資料以前沒接觸過,百度百科定義,Comma-Separated Values,CSV,逗號分隔值,或者符號分隔值 分隔符號一般是逗號,檔案以純文字形式儲存表格資料,因此能儲存非常大資料量的
【演算法設計與分析作業題】第十一週:20. Valid Parentheses
題目 C++ solution class Solution { public: bool isValid(string s) { stack<char> cstack; for (int i = 0; i < s.si
【跟我學oracle18c】第十七天:Multitenant Architecture多租戶框架:2.2 Overview of Commonality in the CDB(藍色感悟)
在CDB中,每個使用者、角色或物件都是通用的或本地的。類似地,通常或區域性授予特權. This section contains the following topics: About Commonality in a CDB A common phenomenon defined i
“全棧2019”Java第十七章:賦值運算子和算術運算子
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第十七章:賦值運算子和算術運算子 下一章 “全棧2019”Java第十八章:一元運算子 學
“全棧2019”Java第十七章:賦值運算符和算術運算符
技術 intel 難度 允許 更多 https 同步 com 運算符 難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文鏈接 “全棧2019”Java第十七章:賦值運算符和
SpringBoot | 第十七章:web 應用開發之檔案上傳
前言 上一章節,我們講解了利用模版引擎實現前端頁面渲染,從而實現動態網頁的功能,同時也提出了相容jsp專案的解決方案。既然開始講解web開發了,我們就接著繼續往web這個方向繼續吧。通常,我們在做web開發時,碰見諸如附件上傳、圖片頭像上傳等檔案的上傳需求也是再正常不過的。
Java程式設計思想 第十七章:深入研究容器
1. 完整的容器分類法 下面是集合類庫的完整圖: Java SE5新添加了: Queue介面(LinkedList已經為實現該介面做了修改)及其實現PriorityQueue和各種風格的BlockingQueue。 ConcurrentMap介面及其實現Concu
201771010134楊其菊《面向物件程式設計(java)》第十七週學習總結
第十七週學習總結 1. 程式是一段靜態的程式碼,它是應用程式執行的藍本。程序是程式的一次動態執行,它對應了從程式碼載入、執行至執行完畢的一個完整過程。作業系統為每個程序分配一段獨立的記憶體空間和系統資源,包括:程式碼資料以及堆疊等資源。每一個程序的內部資料和狀態都是完全獨立的。多工作業系統中,
201771010135 楊蓉慶《面對物件程式設計(java)》第十七週學習總結
1、實驗目的與要求 (1) 掌握執行緒同步的概念及實現技術; (2) 執行緒綜合程式設計練習 一、理論知識 ⚫ 執行緒同步 (1)多執行緒併發執行不確定性問題解決方案:引入線 程同步機制,使得另一執行緒要使用該方法,就只 能等待 (2)在Java中解決多執行緒同步問
楊玲 201771010133《面向物件程式設計(java)》第十七週學習總結
《面向物件程式設計(java)》第十七週學習總結 第一部分:實驗部分 實驗名稱:實驗十七 執行緒同步控制 1、實驗目的與要求 (1) 掌握執行緒同步的概念及實現技術; (2) 執行緒綜合程式設計練習 2、實驗內容和步驟 實驗1:測試程式並進行程式碼註釋。 測試程式1: l&nbs
第十七週作業
姓名:鄒豐蔚 學號:201771010138 實驗十七 執行緒同步控制 實驗時間 2018-12-10 1、實驗目的與要求 (1) 掌握執行緒同步的概念及實現技術; (2) 執行緒綜合程式設計練習 2、實驗內容和步驟 實驗1:測試程式並進行程式碼註釋
李曉菁201771010114《面向物件程式設計(java)》第十七週學習總結
1.Java通過多執行緒的併發執行提高系統資源利用率,改善系統性能。 2.假設有兩個或兩個以上的執行緒共享 某個物件,每個執行緒都呼叫了改變該物件類狀態的方法,就會引起的不確定性。 3.多執行緒併發執行中的問題 ◆多個執行緒相對執行的順序是不確定的。 ◆執行緒執行順序的不確定性會產生執行結
201771010109焦旭超《面向物件程式設計(java)》第十七週學習總結
1、實驗目的與要求 (1) 掌握執行緒同步的概念及實現技術; (2) 執行緒綜合程式設計練習 2、實驗內容和步驟 實驗1:測試程式並進行程式碼註釋。 測試程式1: l 在Elipse環境下除錯教材651頁程式14-7,結合程式執行結果理解程式; l&nb
201771010112羅鬆《面向物件程式設計(java)》第十七週學習總結
1、實驗目的與要求 (1) 掌握執行緒同步的概念及實現技術; (2) 執行緒綜合程式設計練習 2、實驗內容和步驟 實驗1:測試程式並進行程式碼註釋。 測試程式1: l 在Elipse環境下除錯教材651頁程式14-7,結合程式執行結果理解程式; l&nb
201771010123汪慧和《面向物件程式設計Java》第十七週實驗總結
一、理論部分 1、多執行緒併發執行中的問題 ◆多個執行緒相對執行的順序是不確定的。 ◆執行緒執行順序的不確定性會產生執行結果的不確定性。 ◆在多執行緒對共享資料操作時常常會產生這種不確定性。 2、執行緒的同步 -多執行緒併發執行不確定性問題解決方案:引入執行緒同步機制,使得另一執行緒要使用該方法,
達拉草201771010105《面向物件程式設計(java)》第十七週學習總結
達拉草201771010105《面向物件程式設計(java)》第十七週學習總結 第一部分:理論知識 1.多執行緒的概念: (1)多執行緒是程序執行過程中產生的多條執行線索。 (2)多執行緒意味著一個程式的多行語句可以看上去幾 乎在同一時間內同時執行。 (3)執行緒不能獨立存在