Data Structures19 sections · 729 units
Open in Course

Mode Query - Data Structures

Tracking frequencies

You need two structures:

1.1. cnt[v]cnt[v] = frequency of value vv in current range

2.2. freqCount[f]freqCount[f] = how many values have frequency exactly ff Also track maxFreqmaxFreq = current maximum frequency. When adding value vv:

  • Decrease freqCount[cnt[v]]freqCount[cnt[v]]
  • Increase cnt[v]cnt[v]
  • Increase freqCount[cnt[v]]freqCount[cnt[v]]
  • Update maxFreqmaxFreq if cnt[v]>maxFreqcnt[v] > maxFreq When removing: similar, but maxFreqmaxFreq might decrease. If freqCount[maxFreq]freqCount[maxFreq] becomes 00, decrement maxFreqmaxFreq.