# House Robber II
https://leetcode.com/problems/house-robber-ii/ For a simplified version, see [[house-robber]].
Convert the problem into regular one.
```python
def rob(self, nums: List[int]) -> int:
if len(nums) == 1:
return nums[0]
return max(self.rob_simple(nums[:-1]), self.rob_simple(nums[1:]))
def rob_simple(self, nums: List[int]) -> int:
t1 = 0 # max amt robbed up to the current house
t2 = 0 # max amt robbed up to before the current house
for current in nums:
t1, t2 = max(current + t2, t1), t1
return t1
```