自定义反转,三次反转
k有可能长度超过数组长度 ,k %= nums.length 来获取最小移动长度
谢谢各位大佬的题解,学到了学到了
class Solution {
public void rotate(int[] nums, int k) {
int n=nums.length;
k%=n;
reverse(nums,0,n-1);
reverse(nums,0,k-1);
reverse(nums,k,n-1);
}
public void reverse(int[] nums,int star,int last){
while(star<last){
int temp=nums[star];
nums[star]=nums[last];
nums[last]=temp;
star++;
last--;
}
}
}
python3:
学习python语法ing,根据Java和大佬写的最后连写带抄哈哈哈
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
def reverse(i,j):
while i<j:
nums[i], nums[j] = nums[j], nums[i]
i+=1
j-=1
n=len(nums)
k%=n
reverse(0,n-1)
reverse(0,k-1)
reverse(k,n-1)