|
10鱼币
这道题我的思路是第一个超过 1/3 的数出来(我把它标记为major1),然后再重复对抗阶段 碰到major1就跳过,这样就把第二个超过 1/3 的数筛出来了(major2)
代码如下:(我写的作业被版主删掉了,在群里问是因为我作业写错了,我对了下答案只有这里有出入,想问一下我的代码哪里错了)
具体代码如下:
- list1 = [1,2,1,1,2,3,2,3]
- major = list1[0]
- counts = 0
- for i in list1:
- if counts == 0:
- major = i
- if i == major:
- counts += 1
- else:
- counts -= 1
- if list1.count(major) >= len(list1)/3:
- print('major1=',major)
- else:
- print('no')
- a = major
- major = list1[0]
- for i in list1:
- if i == a: #碰到major1就跳过#
- continue
- if counts == 0:
- major = i
- if i == major:
- counts += 1
- else:
- counts -= 1
- if list1.count(major) >= len(list1)/3:
- print('major2=',major)
- else:
- print('nope')
复制代码 |
|