https://www.hackerrank.com/challenges/lilys-homework/problem
数组有序是最小的,反证法。
可以是顺序,逆序。
然后就是求数组长度减去环的个数。
一开始一直TLE,发现是hackerrank平台case没有给全,然后Python有事可以读取一行做list,what is the fuck......
# Complete the lilysHomework function below.
def lilysHomework(a):
aa=sorted(a)
d={v:i for i,v in enumerate(a)}
vis=[False]*len(a)
res=0
for i in range(len(a)):
if vis[i]: continue
res+=1
while not vis[i]:
vis[i]=True
i=d[aa[i]]
aa=aa[::-1]
vis2=[False]*len(a)
res2=0
for i in range(len(a)):
if vis2[i]: continue
res2+=1
while not vis2[i]:
vis2[i]=True
i=d[aa[i]]
return len(a)-max(res,res2)