This question evaluates algorithmic problem-solving skills, specifically understanding of dynamic programming and optimization when selecting non-adjacent elements, within the Coding & Algorithms domain.
You are given an integer array nums representing the amount of money available at each house along a street.
If you take money from house i, you cannot take money from house i-1 or i+1 (no two selected houses may be adjacent).
Return the maximum amount of money you can take.
nums
: an array of integers (typically non-negative)
1 <= nums.length <= 10^5
0 <= nums[i] <= 10^9
nums = [1, 2, 3, 1]
→ Output:
4
(choose 1 and 3)
nums = [2, 7, 9, 3, 1]
→ Output:
12
(choose 2, 9, 1)