归纳法

全排列

# -*- coding:utf-8 -*-
'''输出abcd的全排列'''

def p(m):
    if m==n:
        print(l)
    else:
        for i in range(m,n):
            l[i],l[m] = l[m],l[i]
            p(m+1)
            l[i],l[m] = l[m],l[i]

l=['a','b','c','d']
n=4
p(0)

寻找多数元素

def findMost(m):
    """
    从m处开始找多数元素
    """
    k=1;c=l[m];j=m
    while j<n and k>0:
        j+=1
        if l[j]==c:
            k+=1
        else:
            k-=1
    if j==n:
        return c
    else:
        return findMost(j+1)

l = [1,2,3,3,3,3,3,1,2,2]
n = len(l)-1
c = findMost(0)

count = 0
for cc in l:
    if cc == c:
        count += 1
if count>(n-1)/2:
    print(c)
else:
    print("none")

results matching ""

    No results matching ""