阅读背景:

把一个含有N个元素的数组循环右移K位, 要求时间复杂度为O(N)

来源:互联网 

分析与解法

这个解法其实在《啊哈!算法》有讲到。

假设原数组序列为abcd1234,要求变换成的数组序列为1234abcd,即循环右移了4位,比较之后,不难看出,其中有两段的顺序是不变的:1234和abcd,可把两段看成两个整体。右移K位的过程就是把数组的两部分交换一下。变换过程通过以下步骤完成:假设原数组序列为abcd1234,要求变换




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: