算法趣题

版权声明:转载请注明原文地址即可,要是本文对您有些许帮助的话,请您在下方点个赞,谢谢啦ヾ(o◕∀◕)ノヾ https://blog.csdn.net/qq_33583069/article/details/88969900

讲数组元素循环右移k位,且只有一个元素大小的附加空间(不妨设为t)。

朴素想法:借助t容易实现循环右移一位。然后执行k次,复杂度O(n*k)
我们发现,这个题可以把数据分解成%k的同余类,然后把同余类看成一个环,置换环就ok了。
上面都是通过模拟的角度思考问题,但仔细一想,进而会发现把原序列分割成两段n-k与k,分别翻转在整体反转,其实就是答案了。

猜你喜欢

转载自blog.csdn.net/qq_33583069/article/details/88969900