8000 Add Dynamic Programming/740_Delete_And_Earn.java · seanprashad/leetcode-patterns@aa5d622 · GitHub
[go: up one dir, main page]

Skip to content

Commit aa5d622

Browse files
committed
Add Dynamic Programming/740_Delete_And_Earn.java
1 parent c946cef commit aa5d622

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import java.util.HashMap;
2+
import java.util.Map;
3+
4+
class Solution {
5+
public int deleteAndEarn(int[] nums) {
6+
Map<Integer, Integer> hm = new HashMap<>();
7+
int maxValue = 0;
8+
9+
for (int num : nums) {
10+
hm.put(num, hm.getOrDefault(num, 0) + num);
11+
maxValue = Math.max(maxValue, num);
12+
}
13+
14+
int[] memo = new int[maxValue + 1];
15+
memo[1] = hm.getOrDefault(1, 0);
16+
17+
for (int i = 2; i < memo.length; i++) {
18+
memo[i] = Math.max(memo[i-1], hm.getOrDefault(i, 0) + memo[i-2]);
19+
}
20+
21+
return memo[maxValue];
22+
}
23+
}

0 commit comments

Comments
 (0)
0