
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)
Lily's Homework 解题思路
本文介绍了解决 HackerRank 上 Lily's Homework 问题的方法。该问题的核心在于找到使数组有序所需的最小步骤数,通过使用环的概念来计算,并考虑数组正序与反序两种情况以确定最优解。
1080

被折叠的 条评论
为什么被折叠?



