旋转数组STL(reverse)

简介: 题目:给定一个数组,将数组向右移动k步,其中k为非负数。样例:

题目:

给定一个数组,将数组向右移动k步,其中k为非负数。

样例:

数组:1 2 3 4 5 6 7,k=3;

输出:5 6 7 1 2 3 4

分析:这道题平常方法做的话也能做,但是当数据量很大的时候,很容易爆时间限制。所以就用到stl里面的函数。第一段代码为我自己写的(爆时间了emo...),第二个是看完解析之后写的,

源码一,

我就不在这里展示了,就是平常做法,循环,爆时间了

源码二:在这里只写入函数,

class Solution {

public:

/**
 * @param nums: an array
 * @param k: an integer
 * @return: rotate the array to the right by k steps
 */
vector<int> rotate(vector<int> &nums, int k) {
// Write your code here
int a=nums.size();
    k=k%a;
    reverse(nums.begin(),nums.begin()+nums.size()-k);
    reverse(nums.begin()+nums.size()-k,nums.end());
    reverse(nums.begin(),nums.end());
return nums;
}

};

目录
相关文章
|
6月前
reverse_re3-入土为安的第十天
reverse_re3-入土为安的第十天
47 0
|
4月前
|
人工智能
数组逆序输出
数组逆序输出。
46 12
|
5月前
|
C语言 Python 容器
将一个数组逆序输出。
将一个数组逆序输出。
44 4
|
算法 搜索推荐 C++
以vector动态数组为例来详解快速排序算法
以vector动态数组为例来详解快速排序算法
169 0
|
C++
C++ 递归和非递归实现字符串反转 char *reverse(char *s)
C++ 递归和非递归实现字符串反转 char *reverse(char *s)
113 0
|
存储 C语言 C++
C++/C/PTA 字符串排序--string类的使用
先输入你要输入的字符串的个数。然后换行输入该组字符串。每个字符串以回车结束,每个字符串不多于一百个字符。
314 0
|
存储 数据安全/隐私保护 Python
reverse3题解
reverse3题解
146 0
reverse3题解
|
存储 安全 C语言
reverse1题解
reverse1题解
99 0
reverse1题解
|
存储 安全 Unix
reverse2题解
reverse2题解
103 0
reverse2题解
|
存储 算法 Java
LeetCode 27移除元素&28实现strStr()&29两数相除
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
115 0
LeetCode 27移除元素&28实现strStr()&29两数相除