3643.垂直翻转子矩阵 练习理解

给你一个 m x n 的整数矩阵 grid,以及三个整数 xyk

整数 xy 表示一个 正方形子矩阵 的左上角下标,整数 k 表示该正方形子矩阵的边长。

你的任务是垂直翻转子矩阵的行顺序。

返回更新后的矩阵。

例如:

输入: grid = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]], x = 1, y = 0, k = 3

输出: [[1,2,3,4],[13,14,15,8],[9,10,11,12],[5,6,7,16]]

思路:

简单理解x是上下移动,y是左右移动 因为他只是行进行变化,所以我们只需要关注行的变化情况,比如说这个 5 他从(1,0)到了(3,0)即x->x+k-1,y->y又因为他是对称的,所以我们只需要做一半就可以,另一半是对称的,即控制a=x,b=x+k-1,a<b一定就可以保证,然后进行行变化即可,采用双指针的办法

python 复制代码
class Solution:
    def reverseSubmatrix(self,grid:List[List[int]],x:int,y:int,k:int)->List[List[int]]:
        a,b=x,x+k-1
        while a<b:
            for i in range(y,y+k):
                grid[a][i],grid[b][i]=grid[b][i],grid[a][i]
            a+=1
            b-=1
        return grid

难点:

理解行变化和列变化的范围为(x,x+k-1),(y,y+k-1) 只有行变化,没有列变化 所以只需要控制行变化的基础上一个一个去遍历每一列的位置,以及对称只需要循环一半即可。

相关推荐
Ada大侦探2 小时前
新手小白学习PowerBI第四弹--------RFM模型建模以及饼图、分解树、树状图、增长趋势图的可视化
人工智能·学习·数据分析·powerbi
乐观甜甜圈2 小时前
线性代数入门讲解:第一部分:向量与矩阵运算
python·线性代数·矩阵
摇滚侠2 小时前
Redis 零基础到进阶,教程简介,Redis 是什么,Redis 能干嘛,Redis 去哪下,Redis 怎么玩,Redis7 新特性,笔记一到八
数据库·redis·笔记
小白程序员成长日记2 小时前
2025.12.10 力扣每日一题
算法·leetcode
我命由我123452 小时前
Java 开发使用 MyBatis PostgreSQL 问题:传入的参数为 null,CONCAT 函数无法推断参数的数据类型
java·开发语言·数据库·学习·postgresql·mybatis·学习方法
lzq6032 小时前
Python自动化办公:5分钟批量处理Excel数据
python·自动化·excel
黑岚樱梦2 小时前
Git学习和Linux基础
git·学习
立志成为大牛的小牛2 小时前
数据结构——五十七、插入排序(王道408)
数据结构·笔记·程序人生·考研·算法
兩尛2 小时前
猴子爬山od
算法·华为od