leetcode 48. Rotate Image【旋转90】

本文详细解析了LeetCode上的一道经典算法题——旋转图像。题目要求将一个n x n的二维矩阵顺时针旋转90度,且必须在原地修改矩阵,不能使用额外的矩阵进行操作。文章通过示例说明了如何实现这一目标,并提供了一段C++代码实现,帮助读者理解算法的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://leetcode.com/problems/rotate-image/description/

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

Rotate the image by 90 degrees (clockwise).

Note:

You have to rotate the image in-place, which means you have to modify the input 2D matrix directly. DO NOT allocate another 2D matrix and do the rotation.

Example 1:

Given input matrix = 
[
  [1,2,3],
  [4,5,6],
  [7,8,9]
],

rotate the input matrix in-place such that it becomes:
[
  [7,4,1],
  [8,5,2],
  [9,6,3]
]

Example 2:

Given input matrix =
[
  [ 5, 1, 9,11],
  [ 2, 4, 8,10],
  [13, 3, 6, 7],
  [15,14,12,16]
], 

rotate the input matrix in-place such that it becomes:
[
  [15,13, 2, 5],
  [14, 3, 4, 1],
  [12, 6, 8, 9],
  [16, 7,10,11]
]

自己画一画就出来了

要不是因为困 应该不用写这么久的

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int n=matrix[0].size();
      //  printf("%d\n",n);
        for(int i=0;i<n/2;i++){
            for(int j=0;j<n-i*2-1;j++){
                int x=matrix[i][i+j];
               // printf("x=%d\n",x);
            //    printf("%d %d  ",i,i+j);printf("%d %d  ",n-i-1-j,i);printf("%d %d  ",n-i-1,n-1-i-j);printf("%d %d\n",i+j,n-i-1);
                matrix[i][i+j]=matrix[n-i-1-j][i];
                
                matrix[n-i-1-j][i]=matrix[n-i-1][n-i-j-1];
                
                matrix[n-i-1][n-i-j-1]=matrix[i+j][n-i-1];
                
                matrix[i+j][n-i-1]=x;
                
            }
        }        
    }
};

 

PGM排料系统,结合人工排料经验与计算机强大的处理能力,集经验与科技,对多个样板进行排料,处理,以最 大程度提高用布率,节省成本。 PGM智能化排料系统,经纺织,服装行业的累计测试,平均比同类软件提高用 布率3%以上,是经营者最高效益的体现。 智能化排料模块 真实模拟排料车间裁剪铺料床排料操作,亲切,容易 配备单面、折叠、圆筒布等面料专业排 版功能 轻松设置排料配比,门幅特征,样片旋转,重叠……等许可,100%完成人工的各项需求 可进行对条, 对格,对花排料 可进行缩水率处理,快速,精确 可进行替换排料(如局部样版修改后可以直接替换样版,不需 重新排料) 可对样片进行旋转,镜射,复制,删除,添加等特殊操作,满足各种生产需求 可进行组群,滑片, 穿插,紧凑……等多项后期操作,最大极限提高用布率 可直接连接各型号绘图机,切割机,裁床…… 优秀功能范例 样片穿插功能:样片可以自动跳过前面的阻挡物穿插到前面的空缺处 替换样片排料:系统可以 在排料中间或对已经排好的排料进行替换样片 本功能针对样片局部处理后的排料带来非常快速的效果. 对 条 对 格 :可完成普通条格,阴阳条格,花型条格的精确配对 紧 凑 功 能 :系统可以自动对整个排料图进行紧 凑。 可以处理排料过程中的部分小缝隙,最大程度提高用布率及排料质量 全自动排料模块 系统可以全自动快速排料 可以接受样版的特殊设置,如:对条对格,样片重叠…… 可快速设 置样片不同配比,进行快速排料,核算多尺码的平均用布率 可以直接导出为EXEL格式 可以直接兼容其他排料 模块,完成更复杂的后期处理 本系统适合的行业:服装业(男女装,童装,内衣,休闲服,礼服,绣衣,登山 服……) 旅游用品(帐篷,旅行包袋……) 箱包(包袋,拉杆箱,皮包……) 靠垫(汽车靠垫业,航空靠垫业,沙 发,童车用品……) 帆船制造业 鞋帽制造业 本系统可以为以上行业的产品制造进行排料处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值