zoukankan      html  css  js  c++  java
  • 189. Rotate Array(两次反转)

     

    Rotate an array of n elements to the right by k steps.

    For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].

    Note:
    Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.

    [show hint]

    Related problem: Reverse Words in a String II

     1 class Solution {
     2     public void rotate(int[] nums, int k) {
     3         k%=nums.length;
     4         if(k==0) return;
     5         
     6     
     7         reverce(nums,0,nums.length-1);
     8         reverce(nums,0,k-1);
     9         reverce(nums,k,nums.length-1);
    10     }
    11     private void reverce(int[] a,int i,int j){
    12         for(int k = 0;k <= (j-i)/2;k++){
    13             swap(a,i+k,j-k);
    14         }
    15     }
    16     private void swap(int[] a,int i ,int j){
    17         int temp = a[i];
    18         a[i] = a[j];
    19         a[j] = temp;
    20     }
    21 }
  • 相关阅读:
    http
    VUE-1
    AJAX
    html常用标签
    CSS网页布局
    概念整理3
    SEO
    概念整理2
    var
    概念整理
  • 原文地址:https://www.cnblogs.com/zle1992/p/8460234.html
Copyright © 2011-2022 走看看