zoukankan      html  css  js  c++  java
  • 【leetcode】2 数组元素右移

    描述:数组元素个数为n,右移k位,如12345,右移3位后是34512

    解答思路:将12345全旋转得到54321

         将前3位旋转34521

         将后两位旋转34512

    处理核心是旋转reverse(vector<int> &nums,int begin,int end)

    旋转分隔点是k=k%n  (k是移动位数,n是数组长度)

    class Solution {
    public:
        void reverse(vector<int>& num,int begin,int end){
            int t=begin+(end-begin)/2;
            int tmp=0;
            int i=0;
            while(begin<=t){
                tmp=num.at(begin);
                num.at(begin)=num.at(end-i);
                num.at(end-i)=tmp;
                begin++;
                i++;
            }
        }
        void rotate(vector<int>& nums, int k) {
            int n=nums.size();
                k=k%n;
            if(n==2 && k==1 ){
                int tmp=0;
                tmp=nums.at(0);
                nums.at(0)=nums.at(1);
                nums.at(1)=tmp;
               
            }else if(k==n ||k==0){
               
            }else if(k<n){
                reverse(nums,0,n-1);
                reverse(nums,0,k-1);
                reverse(nums,k,n-1);
            }
        }
    };

  • 相关阅读:
    rpc rmi http
    理解Global interpreter lock
    maven scope含义的说明
    实现图片缩放
    实现在edittext中任意插入图片
    上传图片或文件到服务器端
    onResume
    关于Context
    android bitmap compress
    saveFile()方法
  • 原文地址:https://www.cnblogs.com/wygyxrssxz/p/4483897.html
Copyright © 2011-2022 走看看