File tree Expand file tree Collapse file tree 1 file changed +38
-0
lines changed
Expand file tree Collapse file tree 1 file changed +38
-0
lines changed Original file line number Diff line number Diff line change 1+ """
2+ Constraints:
3+ - 1 <= nums.length <= 100
4+ - 0 <= nums[i] <= 1000
5+
6+ Time Complexity: O(n)
7+
8+ Space Complexity: O(n)
9+
10+ ํ์ด๋ฐฉ๋ฒ:
11+ 1. ์ง์ด ํ๋๋ง ์๋ ๊ฒฝ์ฐ โ ๊ทธ ์ง์ ํ
12+ 2. ๋จผ์ ์ํ์ด ์๋ ์ผ๋ฐ์ ์ธ House Robber ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ํจ์๋ฅผ ๊ตฌํํจ
13+ 3. ์ด ๋ฌธ์ ์ ์ ์ฝ์กฐ๊ฑด์ ํฌํจํ๊ธฐ ์ํด:
14+ - ์ฒซ ๋ฒ์งธ ์ง์ ํธ์ง ์๋ ๊ฒฝ์ฐ (nums[1:])
15+ - ๋ง์ง๋ง ์ง์ ํธ์ง ์๋ ๊ฒฝ์ฐ (nums[:-1])
16+ - ๋ ์ค ์ต๋๊ฐ์ ๋ฐํ
17+ """
18+ class Solution :
19+ def rob (self , nums : List [int ]) -> int :
20+ if len (nums ) == 1 :
21+ return nums [0 ]
22+
23+ def rob_simple (houses ):
24+ if len (houses ) == 1 :
25+ return houses [0 ]
26+ elif len (houses ) == 2 :
27+ return max (houses [0 ], houses [1 ])
28+
29+ dp = [0 ] * len (houses )
30+ dp [0 ] = houses [0 ]
31+ dp [1 ] = max (houses [0 ], houses [1 ])
32+
33+ for i in range (2 , len (houses )):
34+ dp [i ] = max (dp [i - 1 ], houses [i ] + dp [i - 2 ])
35+
36+ return dp [- 1 ]
37+
38+ return max (rob_simple (nums [1 :]), rob_simple (nums [:- 1 ]))
You canโt perform that action at this time.
0 commit comments