#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 15 15:47:54 2018
@author: dengyuzhao
"""
class Solution:
def MoreThanHalfNum_Solution(self, array):
# write code here
if not array:
return 0
result=array[0]
t=1
for i in range(1,len(array)):
if 2*t>len(array):
break
if t==0:
result=array[i]
t=1
if array[i]==result:
t+=1
else:
t-=1
t=0
for i in range(len(array)):
if array[i]==result:
t+=1
if 2*t<=len(array):
result=0
return result
def MoreThanOneThirdNum_Solution(self, array):
if not array:
return [0]
a=array[0]
b=array[1]
m=1
n=1
result=[]
for i in range(2,len(array)):
#如果两个都存在
if m>0 and n>0:
if array[i]!=a and array[i]!=b:
m-=1
n-=1
if array[i]==a:
m+=1
if array[i]==b:
n+=1
elif m>0 and n==0:
if array[i]!=a:
b=array[i]
n=1
if array[i]==a:
m+=1
elif m==0 and n>0:
if array[i]!=b:
a=array[i]
m=1
if array[i]==b:
n+=1
else:
a=array[i]
m=1
if m>0:
m=0
for i in range(len(array)):
if array[i]==a:
m+=1
if m*3>len(array):
result.append(a)
if n>0:
n=0
for i in range(len(array)):
if array[i]==b:
n+=1
if n*3>len(array):
result.append(b)
if result==[]:
return [0]
return result