鱼C论坛

 找回密码
 立即注册
查看: 3163|回复: 60

[已解决]Python:每日一题 378

[复制链接]
发表于 2020-4-17 18:47:16 | 显示全部楼层
本帖最后由 kinkon 于 2020-4-17 20:00 编辑

试试看能不能通过,速度应该是很慢的
  1. from collections import Counter
  2. def f378(nums):
  3.     res = Counter(nums)
  4.     res = sorted(res.items())
  5.     out,stack = 0, []
  6.     for val, c in res:      
  7.         #print(stack)
  8.         if len(stack) == 1:
  9.             if val - 1 == stack[-1][0]:
  10.                 out = max(out, c + stack[-1][1])        
  11.             stack.pop()
  12.         stack.append([val, c])
  13.     return out
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
zltzlt + 5 + 5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-17 19:40:23 | 显示全部楼层
本帖最后由 kinkon 于 2020-4-17 20:21 编辑

优化一下
  1. def f378(nums):
  2.     res = Counter(nums)
  3.     out = 0
  4.     for val, c in res.items():      
  5.         if val - 1 in res:
  6.             out = max(out, c + res[val - 1])        
  7.     return out
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
zltzlt + 5 + 5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-17 20:03:10 | 显示全部楼层
小甲鱼de粉丝 发表于 2020-4-17 19:57
我觉得最好用内置函数

多谢提醒,Counter原来也是内置函数,用字典也可以实现这个功能,代码比较多,当练习了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-17 21:40:09 From FishC Mobile | 显示全部楼层
本帖最后由 kinkon 于 2020-4-17 21:45 编辑
fan1993423 发表于 2020-4-17 21:10


按数量排序有可能会出错,例如,[1,2,2,3,2,6,2,2,7,7,7,7,7]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 09:17:11 | 显示全部楼层
@zltzlt 336题也重新完成了,麻烦楼主重新测试下,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-23 15:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表