Skip to main content

01G 局限

缓存

循环移位

数组就地循环移位. 1,2,3,4,a,b,c -> a,b,c,1,2,3,4

蛮力算法

每次移动一位 O(n*k)

迭代法

一次挪到位,每次只能移好余数相同的数字(同余数)。故经过多组迭代才能就位。每次移动一位 O(2n)

反转法

0 ->->->->->->->->-> K =>=>=>=>=>=>=>=> n

<-<-<-<-<-<-<-<-<-<- 0 <=<=<=<=<=<=<=<= k n

K =>=>=>=>=>=>=>=> 0 ->->->->->->->->-> n

复杂度为 O(3n), 比迭代法看上去慢,但因为是连续访问,可以充分利用操作系统缓存,故速度更快。