博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】【189】Rotate Array
阅读量:4949 次
发布时间:2019-06-11

本文共 1033 字,大约阅读时间需要 3 分钟。

#include
#include
using namespace std;class Solution {public: void rotate(vector
& nums, int k) { //可参考STL源码剖析rotate()算法 k = k%nums.size(); vector
::iterator first = nums.begin(); vector
::iterator last = nums.end(); vector
::iterator middle = last - k; //边界条件 if (first == middle || middle == last) return; vector
::iterator i = middle; while (true){ //前后段一一交换 int temp = *i; *i = *first; *first = temp; ++first; ++i; //判断前段先结束还是后段先结束 if (first == middle){ if (i == last)//同时结束,整个就结束 return; middle = i; } else if (i == last) i = middle; } }};int main(){ vector
vec = { 1, 2 }; Solution solution; solution.rotate(vec, 3); for (vector
::iterator it = vec.begin(); it != vec.end(); ++it) cout << *it << " "; cout << endl; system("pause"); return 0;}

转载于:https://www.cnblogs.com/ruan875417/p/4495558.html

你可能感兴趣的文章
2019-7-15 vue01day
查看>>
SELECT LOCK IN SHARE MODE and FOR UPDATE
查看>>
Perl/Nagios – Can’t locate utils.pm in @INC
查看>>
目录导航「深入浅出ASP.NET Core系列」
查看>>
Git常用命令拾遗
查看>>
Canvas的drawImage方法使用
查看>>
自定义适用于手机和平板电脑的 Dynamics 365(四):窗体脚本
查看>>
阴影效果参考网址
查看>>
华为交换机端口镜像
查看>>
简易爬虫(爬取本地数据)
查看>>
一位菜鸟的java 最基础笔记
查看>>
python 进程间通信
查看>>
字符串和编码
查看>>
servlet(一)
查看>>
异常实验
查看>>
python \r与\b的应用、光标的含义
查看>>
深拷贝 vs 浅拷贝 释放多次
查看>>
Java环境变量PATH和CLASSPATH
查看>>
ERROR:bokeh.core.validation.check:E-1001 (BAD_COLUMN_NAME) 就是补存在这个列名
查看>>
assert 的作用是什么?
查看>>