LeetCode题解:189. Rotate Array
来源:互联网 发布:树莓派ubuntu系统图片 编辑:程序博客网 时间:2024/05/29 13:49
题目链接:
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].
题目解释:
提干描述的比较简单,就是给一个整形数组,然后将后k个数放到前面去,例如[1,2,3,4,5,6,7],后3个数是[5,6,7],将这三个数放到数组前三个位置上去。
解题方案:
这个题目有很多解法,例如开辟临时空间等等,但是比较推荐的算法是:翻手法。
我们将一维数组分成了两部分[a,b],要做的事将[a,b]变换为[b,a]。由向量求逆公式: , 子向量a,b分别取逆之后,整体再求逆,就是我们要求的结果:[ba]。
翻手法的解释如下:
AC代码:
具体的AC代码如下:
class Solution {public: void reverse(vector<int> &nums, int start, int end) { if(start >= nums.size() || end >= nums.size()) { return ; } int temp; for(int i = start, j = end; i < j; i++, j--) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; //cout<<i; } return ; } void rotate(vector<int>& nums, int k) { int l = nums.size(); k %= l; reverse(nums, 0, l - k - 1); reverse(nums, l - k, l - 1); reverse(nums, 0, l - 1); }};
0 0
- Leetcode题解 189. Rotate Array
- LeetCode题解:189. Rotate Array
- LeetCode题解:Rotate Array
- LeetCode 题解(203) : Rotate Array
- LeetCode 189 Rotate Array题解
- leetcode题解-169. Majority Element && 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
- 189. Rotate Array LeetCode
- [LeetCode]189. Rotate Array
- leetcode-189.-Rotate Array
- LeetCode 189. Rotate Array
- leetcode 189. Rotate Array
- html--a标签粗略概括
- 【笔记】Ajax+ChinaArea.xml实现三级联动
- 树莓派修改开机图片
- 在运行框中用命令快速打开应用程序
- Operating System-进程/线程内部通信-信号量、PV操作的实现和应用(解决哲学家进餐和生产者消费者问题)
- LeetCode题解:189. Rotate Array
- SQLite教程(五):数据库和事务
- (四)斐波那契数列
- 十二个月队列实现输入输出
- 如何快速搭建web.py开发框架?
- boost库之单例类
- 几款软件的轻量级截图插件对比
- lsusb
- spring注解简化配置