|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如果有一个列表,其中占比超过一半的元素称之为主要元素,那么如何获取一个列表的主要元素呢?
题目给定的列表是:[2, 2, 4, 2, 3, 6, 2]
请根据解题思路进行编程。
解题思路:
根据主要元素的定义,对列表进行排序操作之后,主要元素必然会出现在列表长度一半之后的一个位置上。
所以,我们只需要判断列表中是否有超过一半的元素与中间元素相同即可(如果有,中间元素为主要元素;否则,不存在主要元素)
看一下我的有什么问题吗
我的代码
- m2 = [2, 5, 2, 2, 2, 3, 6, 2]
- a = len(m2)
- for i in m2:
- print(i)
- if m2.count(i) > a/2 :
- print(i,'是主要元素')
- break
- else:
- print('不存在主要元素')
复制代码
答案
- nums = [2, 2, 4, 2, 3, 6, 2, 1]
- nums.sort() # 进行列表排序
- length = len(nums) # 列表的数量
- half = nums[length // 2] # 一半的值对应的数字
- count = 0 # 有多少个
- for each in nums:
- print(each)
- if each == half: # 如果循环的值是一半的值对应的数字
- count += 1 # 个数+1
- if count > length / 2: # 如果个数大于 全部数的一半
- print("存在主要元素,是:", half)
- else:
- print("不存在主要元素!")
复制代码 |
|