-
Notifications
You must be signed in to change notification settings - Fork 70
/
Copy pathHouseRobber.java
37 lines (32 loc) · 1.04 KB
/
HouseRobber.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
* You are a professional robber planning to rob houses
* along a street. Each house has a certain amount of money
* stashed, the only constraint stopping you from robbing
* each of them is that adjacent houses have security
* system connected and it will automatically contact the
* police if two adjacent houses were broken into on the
* same night.
Given a list of non-negative integers representing the
amount of money of each house, determine the maximum amount
of money you can rob tonight without alerting the police.
Example
Given [3, 8, 4], return 8.
Challenge
O(n) time and O(1) memory.
*/
public class HouseRobber {
/**
* @param A: An array of non-negative integers.
* return: The maximum amount of money you can rob tonight
*/
public long houseRobber(int[] A) {
long prev = 0;
long cur = 0;
for (int a : A) {
long tmp = cur;
cur = Math.max(prev + a, cur);
prev = tmp;
}
return cur;
}
}