muyang_zzF6 发表于 2022-1-21 19:01:03

Python求助

nums =
   
major1 = major2 = nums
count1 = count2 = 0
   
# 对抗阶段
for each in nums:
    if major1 == each:
      count1 += 1
      continue
   
    if major2 == each:
      count2 += 1
      continue
   
    if count1 == 0:
      major1 = each
      count1 = 1
      continue
   
    if count2 == 0:
      major2 = each
      count2 = 1
      continue
   
    count1 -= 1
    count2 -= 1
   
# 统计阶段
if nums.count(major1) > len(nums) / 3:
    print(major1)
if nums.count(major2) > len(nums) / 3:
    print(major2)

这里面,如何避免major1和major2相同的情况呢???

muyang_zzF6 发表于 2022-1-21 19:06:58

{:10_266:}{:10_266:}{:10_266:}

muyang_zzF6 发表于 2022-1-21 19:36:09

理解啦,我应该好好听小师妹的视频的!

大马强 发表于 2022-1-21 19:38:11

你这代码原理是啥?有点看不懂{:10_269:}

muyang_zzF6 发表于 2022-1-21 19:39:19

求主要元素,也就是在这个列表中,出现的次数超过列表总元素数三分之一的元素!

muyang_zzF6 发表于 2022-1-21 19:40:18

muyang_zzF6 发表于 2022-1-21 19:39
求主要元素,也就是在这个列表中,出现的次数超过列表总元素数三分之一的元素!

我也是一脸懵,看了小师妹的视频,推能推出来答案,不过要我自己写代码。估计怎么也写不出来

傻眼貓咪 发表于 2022-1-22 09:21:08

本帖最后由 傻眼貓咪 于 2022-1-22 09:23 编辑

试试这个:nums =

major1 = major2 = nums
count1 = count2 = 0

for each in nums:
        if count1 == 0:
                major1 = each
        elif each == major1:
                count1 += 1
        else:
                count1 -= 1
       
        if count2 == 0 and each != major1:
                major2 = each
        elif each == major2:
                count2 += 1
        else:
                count2 -= 1

if nums.count(major1) > len(nums)/3:
        print(major1)
if nums.count(major2) > len(nums)/3:
        print(major2)

muyang_zzF6 发表于 2022-1-22 11:58:50

傻眼貓咪 发表于 2022-1-22 09:21
试试这个:

厉害了

傻眼貓咪 发表于 2022-1-22 12:22:35

muyang_zzF6 发表于 2022-1-22 11:58
厉害了

{:10_254:}
页: [1]
查看完整版本: Python求助