优质文章,第一时间送达!
Leetcode最新上线了手机版app,之前手机只能通过浏览器登录网站学习,如今有app,闲了就可以瞅两道题。今天等车的时候随手翻了一道题
169. 多数元素 http://leetcode-cn.com/problems/majority-element/。
看了下是众数问题,脑子简单过了下大概思路,就准备接着看其他题了。但想想还是看下别人是怎么做的吧,结果….
关于题目
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例 1:
输入: [3,2,3]
输出: 3
示例 2:
输入: [2,2,1,1,1,2,2]
输出: 2
暴力解法
先来看看最简单无脑的暴力解法,详细大多数人都能想到该解题方式:
1class Solution:
2 def majorityElement(self, nums):
3 majority_count = len(nums)//2
4 for num in nums:
5 count = sum(1 for elem in nums if elem == num)
6 if count > majority_count:
7 return num
先计算列表1/2的长度,然后进行for循环嵌套最终获取结果。这种时间复杂度:O(n*n)的解法就不多赘述了。主要看看下面两种解法。
哈希表
这种方法,在LeetCode上很常见,就是使用Counter的方式,生成针对元素与出现次数的字典,然后进行计算。
1class Solution:
2 def majorityElement(self, nums):
3 counts = collections.Counter(nums)
4 return max(counts.keys, key=counts.get)
本来觉得没什么特别,但当看到return操作时,觉得自己几年的Python都白学了。居然不知道max函数,具有key的方法…一直是用它来简单的比较最大值。殊不知针对字典操作时,max可以通过定义key值来进行动态比较。(类似的方法如sorted倒是经常使用)…
不知道max有key这个参数的,举个手,让我知道我不是一个人,哈哈…
奇思妙想
最让我佩服的就是下面这种解题思路,堪称经典。
文中定义有一个关键点,多数元素是指数据中出现大于n/2的元素。那么如果所有数字被单调递增或者单调递减的顺序排了序,当n是奇数时,众数的下标为n/2,当n是偶数时,下标为n/2 +1。于是出现了下面这种犀利的解法。
1class Solution:
2 def majorityElement(self, nums):
3 nums.sort
4 return nums[len(nums)//2]
然而,官方的答案还远不止这些,一共提供了六种解答方式。所以,你觉得自己Python学到位了吗?
推荐阅读:旗龙
-
麦咭小小编程师教你做《万有引力》小游戏--福
由深圳市科学技术协会、福田区科技创新局(福田区科协)指导,由福田区华富办事处妇女联合会、深圳市新联会科技联盟、深业上城联合体综合党委、深圳市高科技企业协同创新促...
2021-05-08 -
加拿大留学移民必备电话卡,双十一“神秘计划”
加拿大气候虽然慢慢变冷了但双十一以及黑五的临近又点燃了大家的购物热情每到一年秋冬季节,只有买买买能让体温升高各种优惠折扣看得眼花缭乱来!让小编教你~怎么在双十一...
2020-11-11 -
留学省钱攻略之加拿大电话卡|文末有福利彩蛋
加拿大的电话套餐是出了名的贵。作为非土豪留学生一枚,平时适当省检是留学生活的基本方针。毕竟谁的钱也不是大风刮来的。所以就电话卡的挑选简单分享一下省钱攻略:我之前...
2020-10-26 -
南方医科大学以学分制改革打通成人教育和自学考
建16个成人教育校外授课点和23个自考互助点南方医科大学以学分制改革打通成人教育和自学考试校本部正门媒体记者了解到,南方医科大学继续教育学院前身为第一军医大学继...
2020-07-24 -
有才又有料!第六届上汽通用汽车校园创新传播工
近日,第六届上汽通用汽车校园创新传播工场(ICCG)在广大高校师生的期待中盛势启幕,年度大学生跨界创意盛宴正式上线。作为面向大学生推出的校园创新平台,第六届IC...
2020-06-15 -
沈梦辰晒日系旅游美照 白T恤配米色阔腿裤减龄
9月4日,沈梦辰在微博晒出一组旅行美照并配文:“结果不重要,过程才是风景。”照片中,沈梦辰身穿白色T恤搭配米色阔腿裤,十分清新。沈梦辰美照沈梦辰...
2019-09-05 -
让地球氧气在5亿年前猛增的神秘力量找到了
宇宙探秘本报记者 张 晔氧气是人类和动物赖以生存的基础。但是,远古时期的地球曾极度缺氧,是一片不折不扣的生命禁区。然而,到了距今5.8亿—5.2亿年左右,地球氧...
2019-09-05 -
猪肉价格涨疯了 卖车还不如养猪挣钱?
最近,猪肉价格上涨引起广泛关注,据搜猪网分析师冯永辉测算,按照目前生猪市场价格,养殖户头均盈利已达到1491元,创历史新高。对此,有网友调侃,“猪”似乎有成为“...
2019-09-05