Skip to content

Commit b26b1c2

Browse files
authored
Create 0740-delete-and-earn.kt
1 parent a097112 commit b26b1c2

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

kotlin/0740-delete-and-earn.kt

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class Solution {
2+
fun deleteAndEarn(nums: IntArray): Int {
3+
val count = HashMap<Int, Int>().apply {
4+
for (n in nums) this[n] = this.getOrDefault(n, 0) + 1
5+
}
6+
val noDups = nums.toSet().toTypedArray().apply { this.sort()}
7+
8+
var before = 0
9+
var sum = 0
10+
for (i in noDups.indices) {
11+
val cur = noDups[i] * count[noDups[i]]!!
12+
if (i > 0 && noDups[i] == noDups[i - 1] + 1) {
13+
val temp = sum
14+
sum = maxOf(cur + before, sum)
15+
before = temp
16+
} else {
17+
val temp = sum
18+
sum = cur + sum
19+
before = temp
20+
}
21+
}
22+
23+
return sum
24+
}
25+
}

0 commit comments

Comments
 (0)