Back to Leetcode

Readme

Others/1224.Maximum-Equal-Frequency/Readme.md

latest1.1 KB
Original Source

1224.Maximum-Equal-Frequency

很显然,我们会从最长的前缀(即整个数组)开始,从后往前逐一去除元素。如果某一个前缀,满足去除一个元素就可以使得剩余元素的频次相等的话,就输出该前缀长度。

为此,我们可以维护一个频次表记录freq2count[f] = count,表示当前频次为f的元素有count个。接下来分情况讨论。

如果freq2count里有三种或以上的频次(即三种或以上的key),那么显然不可能通过只删减一个元素就达到频次的种类降为1.

如果freq2count里只有两种频次,有两种情况是可以实现的。1. 类似于3,3,3,4,4,4,4,通过删掉一个较高频次的元素,使得剩下的两种元素频次相同。2. 类似于1,2,2,2,较低频次的元素只出现了一次,那么删掉它就只剩下一种元素。

如果freq2count里只有一种频次,也有两种情况是可以实现的。1. 类似于2,3,4,即freq=1,那么随便哪个元素都可以。2. 类似于3,3,3,即count=1,那么随便哪个元素也可以。

根本题类似的还有2423. Remove Letter To Equalize Frequency.