Delete and Earn LeetCode solution in Java

1
class Solution {
2
public int deleteAndEarn(int[] nums) {
3
Arrays.sort(nums);
4
int onePreviousAgo = 0;
5
int previous = 0;
6
for (int i = 0; i < nums.length; i++) {
7
int sum = 0;
8
// On hop there's no constraint to add the previous value
9
if (i > 0 && nums[i - 1] < nums[i] - 1) {
10
onePreviousAgo = previous;
11
}
12
// Accumulate equal values
13
while (i < nums.length - 1 && nums[i] == nums[i + 1]) {
14
sum += nums[i];
15
i++;
16
}
17
int currentPrevious = previous;
18
previous = Math.max(onePreviousAgo + nums[i] + sum, previous);
19
onePreviousAgo = currentPrevious;
20
// System.out.println(nums[i] + ":" + previous);
21
}
22
return previous;
23
}
24
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0