mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-08-03 02:47:26 +08:00
26 lines
370 B
Go
26 lines
370 B
Go
package leetcode
|
|
|
|
func maximumElementAfterDecrementingAndRearranging(arr []int) int {
|
|
n := len(arr)
|
|
count := make([]int, n+1)
|
|
for _, v := range arr {
|
|
count[min(v, n)]++
|
|
}
|
|
miss := 0
|
|
for _, c := range count[1:] {
|
|
if c == 0 {
|
|
miss++
|
|
} else {
|
|
miss -= min(c-1, miss)
|
|
}
|
|
}
|
|
return n - miss
|
|
}
|
|
|
|
func min(a, b int) int {
|
|
if a < b {
|
|
return a
|
|
}
|
|
return b
|
|
}
|