关注
思路间代码注释 def minDistance():
'''
想法:
如果项链是一条线,不是环,那么线上各珍珠最小移动距离为到中位数的移动距离,
所以遍历项链的n个位置,剪断,将项链拉成一条线,此时求最短移动距离,然后取最短
'''
l,n=list(map(int,input().strip().split()))
pos=list(map(int,input().strip().split()))
def __mindistance(onepos):
'''每条线的最短移动距离'''
if n%2==0 and n>2:
midNum1=onepos[n//2]
midNum2 = onepos[n//2 -1]
steps1 = 0
steps2 = 0
for num in onepos:
steps1 += abs(num - midNum1)
steps2 += abs(num - midNum2)
pianyi = 0
for i in range(n//2 -1):
pianyi += i
steps = min(steps1, steps2)
return steps - pianyi * 2 - n
else:
zhongweishu = onepos[n // 2]
steps = 0
for num in onepos:
steps += abs(num - zhongweishu)
pianyi = 0
for i in range(n // 2):
pianyi += i
return steps - pianyi * 2 - n+1
minstep=sum(pos)
for i in range(l):
pos_temp=[po-i if po>=i else l-i+po for po in pos]
pos_temp.sort()
step=__mindistance(pos_temp)
if step<minstep:
minstep=step
return minstep
查看原帖
点赞 评论
相关推荐
11-03 14:26
武汉设计工程学院 运营 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
145711次浏览 2498人参与
# 秋招落幕,你是He or Be #
2939次浏览 74人参与
# 应届生进小公司有什么影响吗 #
108981次浏览 1116人参与
# 比亚迪工作体验 #
69924次浏览 254人参与
# 你面试体验感最差/最好的公司 #
2793次浏览 56人参与
# 工作中听到最受打击的一句话 #
2365次浏览 61人参与
# 大厂VS公务员你怎么选 #
70810次浏览 658人参与
# 重来一次,你会对开始求职的自己说 #
2775次浏览 70人参与
# 一人说一个提前实习的好处 #
3110次浏览 68人参与
# 团建是“福利”还是是 “渡劫” #
3884次浏览 109人参与
# 实习没事做是福还是祸? #
7958次浏览 135人参与
# 如何排解工作中的焦虑 #
243449次浏览 2238人参与
# 从顶到拉给所有面过的公司评分 #
144764次浏览 518人参与
# 今年你最想重开的一场面试是? #
1312次浏览 24人参与
# 你小心翼翼的闯过多大的祸? #
6713次浏览 107人参与
# 联影求职进展汇总 #
123779次浏览 781人参与
# OPPO求职进展汇总 #
755822次浏览 5390人参与
# 互联网公司爆料 #
158534次浏览 724人参与
# 产品实习,你更倾向大公司or小公司 #
189044次浏览 2052人参与
# 秋招结束之后的日子 #
113881次浏览 1038人参与

