House Robber II
Medium
Array
Dynamic Programming
You are a professional robber planning to rob houses along a street. The houses are arranged in a **circle**, meaning the first house is the neighbor of the last one. Each house has a certain amount of money stashed. Given an integer array `nums` representing the amount of money of each house, return *the maximum amount of money you can rob tonight **without alerting the police***.
Example 1
Input: nums = [2,3,2]
Output: 3
Example 2
Input: nums = [1,2,3,1]
Output: 4

Constraints

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 1000
Time Complexity
O(n)
Space Complexity
O(1)
14
Case 1
Input: [2,3,2]
Expected: 3
Case 2
Input: [1,2,3,1]
Expected: 4
Case 3
Input: [1,2,3]
Expected: 3