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);
            }
        }
    };

  • 相关阅读:
    跨数据库查询——dblink
    进度条
    datagrid 的标题的内容不对应整齐
    ie9table排列不对.td错行,多了一列
    进位方法
    ie9 jscript7 内存不足 页面无响应
    a标签 href触发及传值
    uploadify上传附件 点击保存无效 切F12就可以正常保存
    oracle增加用户密码,cmd导入数据库
    ${}中嵌套${}
  • 原文地址:https://www.cnblogs.com/wygyxrssxz/p/4483897.html
Copyright © 2011-2022 走看看