leetcode-基础-数组

189.旋转数组

题目

leetcode-基础-数组_第1张图片

解题思路

根据评论中的方法,利用algorithm头文件中的函数reverse,将vector先整体翻转。
再将 前 ** k % nums.size() ** 个元素进行翻转、 ** k % nums.size()+1 ~ nums.end() ** 元素进行翻转。
利用O(n)的时间复杂度完成该题目。

class Solution {
public:
    void rotate(vector& nums, int k) {
        k = k % nums.size();
        reverse(nums.begin(),nums.end());
        vector::iterator it = nums.begin() + k;
        reverse(nums.begin(),it);
        reverse(it,nums.end());
        }
};

48.旋转图像

题目

leetcode-基础-数组_第2张图片

解题

根据评论区大神的点拨,我选择先将矩阵沿横轴翻转,再根据正对角线进行镜面翻转,即可得到顺时针旋转90°的矩阵!

class Solution {
public:
    void rotate(vector>& matrix) {
         reverse(matrix.begin(),matrix.end());
        for(int i=0;i

你可能感兴趣的:(编程)