Medium
House Robber II
Medium
0 submissions
25 coins
+100 XP
Array
Dynamic Programming
Problem Description
You are a professional robber planning to rob houses along a street. All houses at this place are arranged in a **circle**. That means the first house is the neighbor of the last one. Meanwhile, adjacent houses have a security system connected, and it will automatically contact the police if two adjacent houses were broken into on the same night.
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
Explanation: You cannot rob house 0 and house 2 as they are adjacent.
```
**Example 2:**
```
Input: nums = [1,2,3,1]
Output: 4
Explanation: Rob house 0 (money = 1) and house 2 (money = 3). Total = 1 + 3 = 4.
```
**Example 3:**
```
Input: nums = [1,2,3]
Output: 3
```
Constraints
- 1 <= nums.length <= 100
- 0 <= nums[i] <= 1000
Need help?
Connect with expert programmers for real-time collaborative coding, video meetings, and whiteboard sessions via CodeConnect.
Video Call
Whiteboard
Live Coding
Screen Share