讨论/《初级算法》 - 旋转数组/
《初级算法》 - 旋转数组

学到了

public class Solution {
    public void Rotate(int[] nums, int k) {
        k=nums.Length>k?k:k%nums.Length;
        Rotate(nums,0,nums.Length-1);
        Rotate(nums,0,k-1);
        Rotate(nums,k,nums.Length-1);
        
    }

    private void Rotate(int[] nums,int start,int end){
        for(int i=start,j=end;i<j;i++,j--){
            int temp=nums[i];
            nums[i]=nums[j];
            nums[j]=temp;
        }
    }
    //v1 性能不佳
        // public void Rotate(int[] nums, int k) {
        // for(int i=0;i<k;i++){
        //     int last=nums[nums.Length-1];
        //     for(int j=nums.Length-1;j>0;j--){
        //         nums[j]=nums[j-1];
        //     }
        //     nums[0]=last;
        // }
    //}
}
展开全部 145 讨论