LeetCode Rotate Array 翻转数组
2015-04-10 21:58
351 查看
题意:给定一个数组,将该数组的后k位移动到前n-k位之前。(本题在编程珠玑中第二章有讲)
思路:
方法一:将后K位用vector容器装起来,再移动前n-k位到后面,再将容器内k位插到前面。
Rotate Array
思路:
方法一:将后K位用vector容器装起来,再移动前n-k位到后面,再将容器内k位插到前面。
class Solution { public: void rev(int *q,int *p) { while( q!=p && q!=p+1 ) { *q ^= *p; *p ^= *q; *q ^= *p; q++; p--; } } void rotate(int nums[], int n, int k) { if( !k || !n || n==1 || k==n ) return; k %= n; int temp, i, j; for(i=1; i<=k; i++) { temp = nums[n-i]; cout<<temp<<endl; for(j=n-i-k; j>=0; j-=k) { nums[j+k] = nums[j]; cout<<nums[j+k]<<endl; } nums[j+k] = temp; } temp=n%k; //套用第2种方法 rev(&nums[0],&nums[temp-1]); rev(&nums[temp],&nums[k-1]); rev(&nums[0],&nums[k-1]); } };
Rotate Array
相关文章推荐
- leetcode解题之189 # Rotate Array Java版 (对数组的部分翻转)
- LeetCode Rotate Array 旋转数组
- leetcode Rotate Array 旋转数组
- LeetCode 48. Rotate Image 数组90度翻转(要求空间复杂度)
- leetcode 189. Rotate Array旋转数组
- 【LeetCode】Rotate Array 旋转数组
- leetCode 189. Rotate Array 数组
- [LeetCode] K Inverse Pairs Array K个翻转对数组
- Leetcode刷题记—— 33. Search in Rotated Sorted Array(在翻转顺序的数组里查找)
- [LeetCode] 189. Rotate Array 旋转数组
- LeetCode之“数组”:Rotate Array
- leetcode 189. Rotate Array-旋转数组
- [LeetCode]12. Rotate Array旋转数组
- leetcode—153. Find Minimum in Rotated Sorted Array 在翻转数组寻找最小值
- [LeetCode] Rotate Array 旋转数组
- LeetCode Rotate Array(数组的旋转)
- LeetCode 189 Rotate Array(旋转数组)
- LeetCode 189. Rotate Array(旋转数组)
- LeetCode-189:Rotate Array (数组的循环移位)
- LeetCode 189. Rotate Array (旋转数组)