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) 只有行变化,没有列变化 所以只需要控制行变化的基础上一个一个去遍历每一列的位置,以及对称只需要循环一半即可。

相关推荐
x1387028595734 分钟前
c语言中srtlen(指针使用计算字符长度)、传值和传址调用
c语言·开发语言·算法·visual studio
海兰40 分钟前
【实用程序】电商销售分析仪表盘 — 从零搭建一个AI参与的全栈数据洞察系统
人工智能·学习·算法
ken22321 小时前
在 Libreoffice Calc中输入自定义表情字符时,需要保存之后,才能正常显示
学习
zwenqiyu1 小时前
P5283 [十二省联考 2019] 异或粽子题解
c++·学习·算法
wayz111 小时前
Momentum:TSI(真实强度指数)技术指标详解
算法·金融·数据分析·量化交易·特征工程
青山如墨雨如画1 小时前
【北邮-无线通信中的人工智能】物理层技术中AI的应用实践:基于KNN的调制识别(1)理论基础
人工智能·python·机器学习·matlab·jupyter
编程圈子1 小时前
电机驱动开发学习2. 直流无刷电机工作原理
驱动开发·学习
MATLAB代码顾问1 小时前
Python Matplotlib数据可视化实战指南
python·信息可视化·matplotlib
AI 编程助手GPT2 小时前
用 Python 做一个世界杯赛前分析脚本:以巴西 vs 摩洛哥为例
开发语言·网络·人工智能·python·chatgpt
MartinYeung52 小时前
[论文学习]大型语言模型(LLM)安全与隐私-基于善、恶、丑的深度分析
学习·安全·语言模型