塔子哥 4∗109+1 个羊圈,这些羊圈的编号依次为 −2∗109~2∗109,有的羊圈有若干只羊,有的是空羊圈。现在,塔子哥想将一些羊圈中的羊赶入某些羊圈杯中,以此来重新排列这些羊圈的次序。最终让所有的羊最终都圈在 n 个不同的羊圈中,并且这 n 个羊圈编号依次相邻。为了防止羊羊逃跑,对于每一次转移,塔子哥只能将任何一个羊圈中的所有羊全部赶入任何一个空的羊圈中。
求最少的转移次数?
其实就是找到一段连续的数值,有点类似 LeetCode 2134,就是多了一个排序的过程,比如[1,5]
这个区间,中间隔了3
个数字,那么就需要执行3
个操作,才可以保证这个区间是一个连续的区间,对应的操作次数就是n-(r-l+1)
,如果区间所需要的数字比n
还大,说明不满足条件,需要l
指针右移。
扫码备注加群即可,期待您的到来~