- 题目:给定一个数组和一个int值k,将数组元素向右移动k位
- 难度:Easy
- 思路:
- 方法一:每次移动一位,循环移动k次(该方法的时间复杂度为k*n,n为数组长度) 超时!!!!
- 变换后的数组与元素组存在两段顺序相同的序列(右移k位的过程就是把数组的两部分交换一下)
- 将整个数组元素全部逆序一遍
- 将0-(k-1)位置上的元素逆序
- 将k-(N-1)位置上的元素逆序
- 代码:
方法一:
public class Solution {
public void rotate(int[] nums, int k) {
if(nums == null || nums.length == 0){