zoukankan      html  css  js  c++  java
  • LeetCode:Rotate Array

    Problem:

    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.

    Solution:问题意思是要将末尾的数字依次右移 总共移动三次 则是左移n-k%n 采用三步反转。

     1 class Solution {
     2 public:
     3     void rotate(vector<int>& nums, int k) {
     4         int n=nums.size();
     5         int m=n-k%n;
     6         reverse(nums,0,m-1);
     7         reverse(nums,m,n-1);
     8         reverse(nums,0,n-1);
     9         
    10     }
    11     void reverse(vector<int>& nums,int from,int to)
    12     {
    13         while(from<to)
    14         {
    15             int temp=nums[from];
    16             nums[from++]=nums[to];
    17             nums[to--]=temp;
    18         }
    19     }
    20 };
  • 相关阅读:
    Extension Methods(扩展方法)
    linux面试题
    渗透测试 day4
    渗透测试 day3
    渗透测试 day2
    渗透测试 day1
    9.3 网络安全介绍
    9.2 Iptables
    8.30 进程管理
    8.29 linux的网络
  • 原文地址:https://www.cnblogs.com/xiaoying1245970347/p/4615254.html
Copyright © 2011-2022 走看看