这道题简单的想法就是:两个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个数放到一个数组中,然后,将原数组中前面的数移到后面,再结合这两个数组。
原文地址:https://www.cnblogs.com/wzwi/p/11002235.html
时间: 2024-10-16 13:21:56