leetcode 189. Rotate Array
来源:互联网 发布:淘宝百度云 编辑:程序博客网 时间:2024/04/30 06:25
/*leetcode 189. Rotate Array题目大意:Rotate an array of n elements to the right by k steps.譬如说对于k=3,[1,2,3,4,5,6,7]旋转为[5,6,7,1,2,3,4].解题思路:用一个临时的数组,然后根据k的值,旋转临时数组,然后复制到原来的数组*/#include <iostream>#include <vector>#include <string>using namespace std;class Solution {public: //方法1:使用临时数组,先复制后k个元素,再负责n-7个元素 void rotate(vector<int>& nums, int k) { int n = nums.size(); k = k % n; if (n <= 1 || k == 0) return; vector<int> tmp; for (int i = n -k ; i < n; ++i) tmp.push_back(nums[i]); for (int i = 0;i < n-k; ++i) tmp.push_back(nums[i]); nums = tmp; } //方法2:直接使用vector的函数 void rotate2(vector<int>& nums, int k) { int n = nums.size(); k = k % n; if (n <= 1 || k == 0) return; vector<int> extra(nums.begin(), nums.begin() + n - k); //for (auto i : extra) // cout << i << " "; //cout << endl; nums.erase(nums.begin(), nums.begin()+n-k); //for (auto i : nums) // cout << i << " "; //cout << endl; nums.insert(nums.end(), extra.begin(), extra.end()); }};void test_rotate(){ vector<int> nums{ 1, 2 ,3, 4, 5, 6, 7}; Solution sol; sol.rotate(nums, 3); for (auto i : nums) cout << i << " "; cout << endl;}void test_rotate2(){ vector<int> nums{ 1, 2 ,3, 4, 5, 6, 7 }; Solution sol; sol.rotate2(nums, 3); for (auto i : nums) cout << i << " "; cout << endl;}int main(){ //test_rotate(); test_rotate2(); return 0;}
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
- 通过adb录制视频并通过FFMPEG将MP4转换成GIF格式(一)
- 【HDU】 1787 GCD Again
- 浅谈 C++ 中的 new/delete 和 new[]/delete[]
- 各种 Java Thread State 第一分析法则
- va_list
- leetcode 189. Rotate Array
- Netty入门三:Netty概要讲解,全面了解Netty,做到胸有成竹
- 多线程 - 原子量AtomicLong
- Linux select()函数
- TextField文本域对象的用法
- Python
- 深复制
- Combination Sum III 找出Sum符合要求的组合系列3
- android Intent 传递对象