前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Leetcode: Rotate Image

Leetcode: Rotate Image

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-22 15:12:48
6440
发布2019-01-22 15:12:48
举报

题目: You are given an n x n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).

Follow up: Could you do this in-place?

思路分析: 最笨的方法,重新开辟一个矩阵空间,做旋转。(题目要求最好能就地旋转) 更好的方法:先将矩阵上下对折,然后再沿对角线对折。 例如:

代码语言:javascript
复制
1  2  3      7  8  9      7  4  1
4  5  6  ->  4  5  6  ->  8  5  2
7  8  9      1  2  3      9  6  3

OK,开始写代码! C++参考代码:

代码语言:javascript
复制
class Solution
{
public:
    void rotate(vector<vector<int> > &matrix)
    {
        if (matrix.empty()) return;
        int rows = int(matrix.size());
        int cell = 0;
        //上下对折
        for (int i = 0; i < rows / 2; ++i)
        {
            for (int j = 0; j < rows; ++j)
            {
                cell = matrix[i][j];
                matrix[i][j] = matrix[rows - i - 1][j];
                matrix[rows - i - 1][j] = cell;
            }
        }
        //对角线对折
        for (int i = 0; i < rows; ++i)
        {
            for (int j = 0; j < i; ++j)
            {
                cell = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = cell;
            }
        }
    }
};
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年04月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档