DP 기입 예 (1)

안마사 문제

https://leetcode-cn.com/problems/the-masseuse-lcci/

(양호한 상태 전이 방정식 찾기) 

: 마지막 상태에만 해당 오늘, 아직도 토론 분류입니다

    DP [I]는 [0] : 어제 또는 최대 값, 즉이 중 예약, 또는 마지막 허용 예약을 수락하지 : 오늘 예약을 수락하지 (최대 = 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는 (== 렌 . 1 ) {
 . 9              반환 nums [ 0 ]
 (10)          }
 . 11  
(12)가          // DP [I] [0] 구간 [0, i가 상기 예약 요청의 승인 및 오늘의 첨자 i가 예약 최대 기간 받아들이지
 13          //DP [I] [1] : 최대 시간 구간 [0, 난]의 예약 요청하고 그 날에 대한 첨자를받는 수용 I 예약 
14          INT [] [] DP = 새로운 새  INT [LEN] [ 2 ]
 15          DP는 [ 0 ] [ 0 ] = 0 ;
 16          DP는 [ 0 ] . 1 ] [nums = 0 ]
 . 17  
(18)가          대해 ( INT I = . 1 ; I 렌 <;를 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 [렌 - 1 ] [ 0 ], DP [렌 - 1 ] [ 1 ]);
23      }
 24  
25      공공  정적  무효 메인 (문자열 []에 args) {
 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의 입술 = solution.massage (nums);
(31)          시스템. 아웃 .println (해상도);
32      }

 

 

 

 

 

 

 

 


저자 : liweiwei1419의
링크 : HTTPS : //leetcode-cn.com/problems/the-masseuse-lcci/solution/dong-tai-gui-hua-by-liweiwei1419-8/
출처 : 숙박 버튼 (LeetCode)
저자가 저작권 . 상업 무단 전재 공인 저자에 문의하시기 바랍니다, 소스가 표시 비상업적 무단 전재하시기 바랍니다.

추천

출처www.cnblogs.com/zhmlzhml/p/12639643.html