LeetCode 189.Rotate Array
Description:
Rotate an array of n elements to the right by k steps.
For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].
分析:
首先先弄清楚下面两个问题,可以大大缩短程序运行时间:
数组大小==k或者==1,rotate之后还是原来的数组
若k大于数组大小,前若干倍nums.size()个rotate都没改变原数组,此时只需要k%nums.size()步rotate即可解决上面的问题后,接下来三个循环解决:
先把需要放到前面的数放到一个新数组中去
然后把需要放到后面的数放到原数组的后面去
把新数组中的数放回原数组中
代码如下:
1 |
|