zoukankan      html  css  js  c++  java
  • 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.

    思路:想出尽可能多的方法,这里先写一种,以后再想其他的。

    方法1:时间复杂度O(n),空间复杂度O(n - k % n)。

     1 class Solution {
     2 public:
     3     void rotate(vector<int>& nums, int k) {
     4         vector<int> tem;
     5         int n = nums.size();
     6         k %= n;
     7         for (int i = 0; i < n - k; i++)
     8             tem.push_back(nums[i]);
     9         for (int i = n - k; i < n; i++)
    10             nums[i - n + k] = nums[i];
    11         for (int i = k; i < n; i++)
    12             nums[i] = tem[i - k];
    13     }
    14 };

     方法2:将前n-k个数反转,将后k个数反转,将所有数反转。时间复杂度O(n),空间复杂度O(1).

     1 class Solution {
     2 public:
     3     void rotate(vector<int>& nums, int k) {
     4         int n = nums.size();
     5         k = k % n;
     6         reverse(nums.begin(), nums.begin() + n - k);
     7         reverse(nums.begin() + n - k, nums.begin() + n);
     8         reverse(nums.begin(), nums.begin() + n);
     9     }
    10 };
  • 相关阅读:
    jmeter录制APP脚本
    jmeter的JDBC Request接口测试
    jmeter的webservice接口测试(SOAP/XML-RPC Request)
    jmeter接口测试小结
    jmeter普通的接口测试
    jmeter插件之PerfMon
    jmeter解决中文乱码问题
    session和cookies
    jmeter快速入门
    Python 基础
  • 原文地址:https://www.cnblogs.com/fenshen371/p/4910171.html
Copyright © 2011-2022 走看看