LeetCode【189. 旋转数组】

这道题简单的想法就是:两个for,第一个控制k,就是要推后数值的个数,第二个for就是一个一个的推后,

其中就需要将最后一个数保存,再放到第一个。

class Solution {
    public void rotate(int[] nums, int k) {
        int temp;
        int i,j;
        int c = nums.length;
        temp = nums[c-1];
        for(i = 0;i < k;i++)
        {
            for(j = c-1;j >= 1;j--)
            {
                nums[j] = nums[j-1];
            }
            nums[0] = temp;
            temp = nums[c-1];
        }

    }
}

还有一种思路就是:首先将后面k个数放到一个数组中,然后,将原数组中前面的数移到后面,再结合这两个数组。

猜你喜欢

转载自www.cnblogs.com/wzwi/p/11002235.html