マッサージ師の問題
https://leetcode-cn.com/problems/the-masseuse-lcci/
(良好な状態遷移方程式を見つけます。)
最終状態とのみ関連が今日は、まだ議論の分類です:
今日の予約を受け付けていない:昨日か、予約を受け入れる、または最大値、すなわちほう最後に受け入れ予約、:DP [I] [0] = MAX( DP [I - 1] [0 ]、DP [I - 1] [1]);
任命今日で:[i]の[DP:ちょうど今日、多くの場合、すなわちと相まってから転送され、昨日からの予定を、受け入れないのですか? 1] = DP [I - 1 ] [0] + NUMS [I]
1 パブリック クラスソリューション{ 2 3。 公的 INTマッサージ(INT [] NUMS){ 4。 INT LEN = nums.length; 5 IF(LEN == 0 ){ 6。 復帰 0 ; 7 } 。8 IFは(== lenの。1 ){ 。9 戻り NUMS [ 0 ]; 10 } 11 12である // DP [I] [0]:区間[0、i]は予約要求に受け入れられ、そしてこの日に添え字iが予約最大持続時間受け付けない 13 //DP [I] [1]:最大時間間隔[0、i]はの予約要求、およびその日の添字の受信に受け入れI予約 14 のint [] [] DP = 新しい新しい INT [LEN] [ 2 ]; 15 DP [ 0 ] [ 0 ] = 0 ; 16 DP [ 0 ] [ 1。 NUMS [=] 0 ]; 17 18である ため(INT I = 1 ; I <lenは、I ++ ){ 19 DP [I] [ 0 ] =数学.MAX(DP [I - 1 ] [ 0 ]、DP [I - 1 ] [ 1 ]); 20 DP [I] [ 1 ] = DP [I - 1 ] [ 0 ] + NUMS [I]。 21 } 22 リターン Math.max(DP [たlen - 1 ] [ 0 ]、DP [lenの- 1 ] [ 1 ])。 23 } 24 25 公共 静的 ボイドメイン(文字列[]引数){ 26 ソリューション溶液= 新しいソリューション()。 27 // INT [] NUMS = {1、2、3、1}。 28 // INT [] NUMS = {2、7、9、3、1}。 29 INT [] NUMS = { 2、1、4、5、3、1、1、3 }。 30 INT RES = solution.massage(NUMS)。 31 システム。アウト.println(RES); 32 }
著者:liweiwei1419
リンクします。https://leetcode-cn.com/problems/the-masseuse-lcci/solution/dong-tai-gui-hua-by-liweiwei1419-8/
出典:滞在ボタン(LeetCode)
著者によって予約の著作権。著者は認可商業転載してください接触、非商用の転載は、ソースを明記してください。