34/100. Top K Frequent Elements

在这里插入图片描述
给定一个非空的整数数组,要求返回k个最常见的元素,即返回k个高频整数。题目要求时间复杂度要优于O(n logn),那也就是不能直接对数组排序然后返回前k个不等的整数。

思路一:
使用dict用来记录数字及其出现的次数,然后对dict进行排序,返回要求结果,勉强符合题目要求。

class Solution(object):
    def topKFrequent(self, nums, k):
        """
        :type nums: List[int]
        :type k: int
        :rtype: List[int]
        """
        res = []
        dic = {}
        for i in nums:
            dic[i] = dic[i]+1 if i in dic else 1
        dic_sorted = sorted(dic.items(), key=lambda d:d[1], reverse=True)  #从高到低排序 
        for j in range(k):
            res.append(dic_sorted[j][0])
        return res
  • 相关知识点:
    o. 字典排序:以values为条件,对items进行从高到低(reverse=True)的排序。
    dic_sorted = sorted(dic.items(), key=lambda d:d[1], reverse=True)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
以下是对代码的优化: <!--index.wxml--> <view class="container"> <view class="title">桥梁微检测</view> <view class="button-group"> <navigator url="/pages/regular-check/regular-check">桥梁定期检查</navigator> <navigator url="/pages/frequent-check/frequent-check">桥梁经常性检查</navigator> <navigator url="/pages/bridge-info/bridge-info">桥梁信息</navigator> <navigator url="/pages/bridge-map/bridge-map">桥梁地图</navigator> </view> </view> /* index.wxss */ .container { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; } .title { font-size: 28rpx; font-weight: bold; margin-bottom: 40rpx; } .button-group { display: flex; flex-direction: column; align-items: center; justify-content: center; } button { margin-top: 20rpx; width: 200rpx; height: 80rpx; font-size: 28rpx; background-color: #007aff; color: #fff; border-radius: 10rpx; } /* app.json */ { "pages": [ "pages/index/index", "pages/regular-check/regular-check", "pages/frequent-check/frequent-check", "pages/bridge-info/bridge-info", "pages/bridge-map/bridge-map" ], "window": { "navigationBarTitleText": "桥梁微检测", "navigationStyle": "custom" } } 优化说明: 1. 去除无用的空格和换行符,使代码更加简洁。 2. 对于不需要使用的样式,可以直接省略,避免代码过于冗余。 3. 将`button`标签改为`navigator`标签,因为在小程序中,`button`标签是需要绑定事件的,而在这里,我们只需要跳转页面,所以使用`navigator`标签更加合适。 4. 在`app.json`中添加了`navigationStyle`字段,用于设置导航栏样式为自定义,这样我们就可以在每个页面单独定义导航栏的样式,提高了页面的灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值