File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * https://leetcode.com/problems/house-robber-ii/submissions/1686583649/
3+ * @param {number[] } nums
4+ * @return {number }
5+ */
6+ var rob = function ( nums ) {
7+ if ( nums . length === 1 ) return nums [ 0 ] ;
8+
9+ // Helper to solve the linear house robber problem
10+ function robLinear ( houses ) {
11+ let prev1 = 0 ; // dp[i-1]
12+ let prev2 = 0 ; // dp[i-2]
13+
14+ for ( let money of houses ) {
15+ let temp = prev1 ;
16+ prev1 = Math . max ( prev1 , prev2 + money ) ;
17+ prev2 = temp ;
18+ }
19+
20+ return prev1 ;
21+ }
22+
23+ // Case 1: Exclude last house
24+ let money1 = robLinear ( nums . slice ( 0 , nums . length - 1 ) ) ;
25+ // Case 2: Exclude first house
26+ let money2 = robLinear ( nums . slice ( 1 ) ) ;
27+
28+ return Math . max ( money1 , money2 ) ;
29+ } ;
You can’t perform that action at this time.
0 commit comments