Skip to content

Instantly share code, notes, and snippets.

@woat
Created January 24, 2020 15:51
Show Gist options
  • Save woat/2ed8b9d633e709e2b56a16cb22648f60 to your computer and use it in GitHub Desktop.
Save woat/2ed8b9d633e709e2b56a16cb22648f60 to your computer and use it in GitHub Desktop.
const a = [4,4,0,0,2,3,1,2,2]
let i = 0
let mostFreqK = 0
while (i < a.length) {
if (a[i] < 0) {
i++
continue
}
const k = a[i]
if (a[k] > -1) {
[a[i], a[k]] = [a[k], a[i]]
a[k] = -2
} else {
if (k != i) {
a[i] = -1
}
a[k] -= 1
if (a[mostFreqK] > a[k]) mostFreqK = k
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment