LeetCode第189--旋转数组

    xiaoxiao2022-07-07  157

    给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。

    示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4]

    class Solution { public: void rotate(vector<int>& nums, int k) { if(k == 0 || nums.size() == 0) return; int size = nums.size(); k %= size; reverse(nums.begin(), nums.end()); reverse(nums.begin(), nums.begin()+k); reverse(nums.begin()+k, nums.end()); } };

    题目本身不难,这种思路很巧妙

    最新回复(0)