问题描述:
将一个数组向右循环移位 k 位,要求只使用两个参数,时间复杂度为 O(N)。
思路 1:
采用蛙跳的方式,用当前的元素 i,替换第i+k个元素,这样逐一替换N次后,数组被移位完成。
当然这时要区分能两种情况,N
能整除k 和 N
不能整除k,这时跳的方式是不一样的。
时间复杂度 O(N)
假设 N = 7 k = 3 (N不能整除k), 假设 N = 9 k = 3 (N能整除k)