LeetCode 189. Rotate Array
来源:互联网 发布:java项目评估技术方案 编辑:程序博客网 时间:2024/05/22 16:56
189. 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.
二、输入输出
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]
.
三、解题思路
直接构造
- 直接从后面截取出要翻转的部分,然后重新组装数组就行了
class Solution {public: void rotate(vector<int>& nums, int k) { k = k % nums.size(); vector<int> frontV, backV; frontV.insert(frontV.begin(), nums.begin(), nums.end()-k); backV.insert(backV.begin(), nums.end()-k, nums.end()); nums.clear(); nums.insert(nums.begin(), backV.begin(), backV.end()); nums.insert(nums.end(), frontV.begin(), frontV.end()); }};
翻转+翻转
- 这种方法更常用,想要翻转数组,先把整个数组都翻转了。这样后面的部分和前面的部分就翻转过来了,但是每一部分内部也被翻转了。没关系,我们分别再把前后两部分单独翻转一下就行了。
class Solution {public: void rotate(vector<int>& nums, int k) { k = k % nums.size(); reverse(nums.begin(), nums.end()); reverse(nums.begin(), nums.begin()+k); reverse(nums.begin()+k, nums.end()); }};
阅读全文
0 0
- [LeetCode]189.Rotate Array
- [Leetcode] 189.Rotate Array
- LeetCode 189. Rotate Array
- 【LeetCode】189.Rotate Array
- [leetcode] 189.Rotate Array
- 【leetcode】189. Rotate Array
- Leetcode 189. Rotate Array
- 189. Rotate Array LeetCode
- [LeetCode]189. Rotate Array
- leetcode-189.-Rotate Array
- LeetCode 189. Rotate Array
- leetcode 189. Rotate Array
- LeetCode *** 189. Rotate Array
- [LeetCode]189. Rotate Array
- LeetCode 189. Rotate Array
- leetcode-189. Rotate Array
- Leetcode 189. Rotate Array
- leetcode 189. Rotate Array
- C语言模拟栈存储结构笔记
- Python定义函数及引用
- Pyhon内置的数据类型详解
- 用R做一个完整的数据挖掘项目
- java 学习之List 的 add 与set方法区别
- LeetCode 189. Rotate Array
- 匹配代价函数之SAD
- 深入理解java虚拟机(读书笔记一)
- 盲人程序员是怎样炼成的
- [译] ConstraintLayout深入系列之代替常见布局
- ABB软件的robotstudio怎么解决仿真问题(1)
- 阅读《重构 改善既有代码的设计》学习笔记
- 用GO生成指定长度的随机字符串
- 分享一个课自动整理代码的KEIL插件