题目描述:

方法:

  1. class Solution(object):
  2. def maxEqualFreq(self, A):
  3. count = collections.Counter()
  4. freqs = collections.Counter()
  5. ans = 1
  6. for i, x in enumerate(A):
  7. count[x] += 1
  8. c = count[x]
  9. freqs[c] += 1
  10. if c-1 > 0: freqs[c-1] -= 1
  11. if freqs[c-1] == 0:
  12. del freqs[c-1]
  13. L = len(freqs)
  14. #print freqs
  15. if L <= 2:
  16. if L <= 1:
  17. k, = freqs.keys()
  18. fk = freqs[k]
  19. #print '.', i+1, ';', k, freqs[k]
  20. if k == 1 or fk == 1:
  21. ans = i + 1
  22. else:
  23. a, b = freqs.keys()
  24. fa, fb = freqs[a], freqs[b]
  25. # remove a
  26. #print i+1,a,fa,';',b,fb
  27. if fa-1 == 0 and a-1 == b:
  28. ans = i + 1
  29. if fb-1 == 0 and b-1 == a:
  30. ans = i + 1
  31. if a == 1 and fa == 1 or b == 1 and fb == 1:
  32. ans = i + 1
  33. return ans

另:倒推

  1. from collections import Counter
  2. class Solution(object):
  3. def maxEqualFreq(self, nums):
  4. cnt = Counter(nums)
  5. l = len(cnt)
  6. s = n = len(nums)
  7. if n==1:
  8. return 1
  9. for i in range(n-1,0,-1):
  10. if (s-1) % l == 0:
  11. k = (s-1)//l
  12. if all(x==k or x==k+1 for x in cnt.values()):
  13. return i+1
  14. if l!=1 and (s-1) % (l-1) == 0:
  15. k = (s-1)//(l-1)
  16. if all(x==k or x==1 for x in cnt.values()):
  17. return i+1
  18. num = nums[i]
  19. s-=1
  20. cnt[num]-=1
  21. if cnt[num]==0:
  22. del cnt[num]
  23. l-=1
  24. return 1

leetcode-158周赛-5225-最大相等频率的更多相关文章

  1. [LeetCode] 895. Maximum Frequency Stack 最大频率栈

    Implement FreqStack, a class which simulates the operation of a stack-like data structure. FreqStack ...

  2. 【LeetCode】451-根据字符出现频率排序

    题目描述 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r'和' ...

  3. leetcode.排序.451根据字符出现频率排序-Java

    1. 具体题目 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r ...

  4. ✡ leetcode 158. Read N Characters Given Read4 II - Call multiple times 对一个文件多次调用read(157题的延伸题) --------- java

    The API: int read4(char *buf) reads 4 characters at a time from a file. The return value is the actu ...

  5. leetcode[158] Read N Characters Given Read4 II - Call multiple times

    想了好一会才看懂题目意思,应该是: 这里指的可以调用更多次,是指对一个文件多次操作,也就是对于一个case进行多次的readn操作.上一题是只进行一次reandn,所以每次返回的是文件的长度或者是n, ...

  6. [leetcode]158. Read N Characters Given Read4 II - Call multiple times 用Read4读取N个字符2 - 调用多次

    The API: int read4(char *buf) reads 4 characters at a time from a file. The return value is the actu ...

  7. leetcode 双周赛9 进击的骑士

    一个坐标可以从 -infinity 延伸到 +infinity 的 无限大的 棋盘上,你的 骑士 驻扎在坐标为 [0, 0] 的方格里. 骑士的走法和中国象棋中的马相似,走 “日” 字:即先向左(或右 ...

  8. leetcode 双周赛9 找出所有行中最小公共元素

    给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了.请你帮忙找出在所有这些行中 最小的公共元素. 如果矩阵中没有这样的公共元素,就请返回 -1. 示例: 输入:mat = [[,,,,] ...

  9. [每日一题2020.06.16] leetcode双周赛T3 5423 找两个和为目标值且不重叠的子数组 DP, 前缀和

    题目链接 给你一个整数数组 arr 和一个整数值 target . 请你在 arr 中找 两个互不重叠的子数组 且它们的和都等于 target .可能会有多种方案,请你返回满足要求的两个子数组长度和的 ...

随机推荐

  1. chroot 试用alpinelinux安装软件包的问题

    前边有说明使用chroot 体验alpinelinux,但是因为默认没有dns server,造成软件包无法下载 现象 问题原因 解决方法 copy host resolv.conf 到alpine ...

  2. Python中 将数据插入到Word模板并生成一份Word

    搬运出处: https://blog.csdn.net/DaShu0612/article/details/82912064

  3. C++中的delete加深认识

    delete操作: 我们在删除一个指针之后,编译器只会释放该指针所指向的内存空间,而不会删除这个指针本身. 1.假如你不去释放,那么该区域的内存始终不能被其他数据所使用.2.指向该内存的指针是个局部变 ...

  4. 解决springdatajpa插入大量数据速度慢的问题

    通过看控制台日志可以知道,jpa执行插入的时候每次都会先查询是否存在,然后再一条一条的执行插入,速度相当慢,所以可以jpa和mybatis一起用,用mybatis写原生的sql语句,用过foreach ...

  5. leetcode-162周赛-1254-统计封闭岛屿数量

    题目描述: 自己的提交: class Solution: def closedIsland(self, grid: List[List[int]]) -> int: def dfs(grid,r ...

  6. Unity 调用jar闪退 解决方案

    { https://www.cnblogs.com/YZFHKMS-X/p/11864496.html }

  7. Ecshop商品浏览历史样式修改方法

    想要修改ECSHOP的浏览历史样式,发现 history.lbi 中不能修改. 需要修改的文件:includes\lib_insert.php,找到函数:function insert_history ...

  8. Robot Framework:接口测试

    ---恢复内容开始--- robotframework进行接口测试,需要安装Request和RequestLibrary包 pip install requests pip install -U ro ...

  9. Android中ViewPgae中的Fragment如何确认当前页面可见的问题

    由于在ViewPage中PageAdapter来管理所有的Fragment.在加载一个Fragment的时候,会自动缓存左右几个(默认是一个)页面,此时也会调用到正常的生命周期函数,onCreate, ...

  10. TESTNG听录音笔记

    1. 是什么:有了它可以管理测试用例,做数据驱动,多线程模式下case的鲍旭类型 2. 如何生成testng的xml文件 -- based on Eclipse Eclipse里装上testn插件,指 ...