旋转数组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;
}

};

目录
相关文章
|
人工智能 算法 搜索推荐
9.1 C++ STL 排序、算数与集合
C++ STL(Standard Template Library)是C++标准库中的一个重要组成部分,提供了丰富的模板函数和容器,用于处理各种数据结构和算法。在STL中,排序、算数和集合算法是常用的功能,可以帮助我们对数据进行排序、统计、查找以及集合操作等。STL提供的这些算法,能够满足各种数据处理和分析的需求。通过灵活使用这些算法,我们可以高效地对数据进行排序、查找和聚合操作,提高代码的性能和可读性。在实际编程中,根据具体问题的需求选择合适的算法,能够更好地发挥STL的优势,提高程序的效率。
【leetcode】【27、移除元素】双指针和STL库函数求解
【leetcode】【27、移除元素】双指针和STL库函数求解
|
存储 数据安全/隐私保护 Python
reverse3题解
reverse3题解
136 0
reverse3题解
|
存储 安全 C语言
reverse1题解
reverse1题解
95 0
reverse1题解
|
存储 安全 Unix
reverse2题解
reverse2题解
101 0
reverse2题解
|
存储 C++ 容器
STL中用erase()方法遍历删除元素
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。
2287 0
|
C++
STL反转函数reverse
STL反转函数reverse STL反转函数reverse
108 0
|
算法 C++ 容器

热门文章

最新文章

下一篇
开通oss服务