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

相关推荐
小猴子爱上树2 分钟前
一站式解决图片视频翻译难题的高效AI工具
人工智能·python·音视频
weixin_5386019715 分钟前
智能体测开Day31
开发语言·python
37.2℃99516 分钟前
专业的Claude Design解决方案
前端·算法
め.20 分钟前
定点数运算库
算法·unity
lbb 小魔仙23 分钟前
Git + Python 项目工作流最佳实践:pre-commit、CI、CHANGELOG 自动化
git·python·ci/cd
dyxal28 分钟前
最长公共子序列(LCS)
python·算法
你驴我1 小时前
WhatsApp Cloud API 速率限制下的令牌桶与退避策略实践
网络·后端·python
AC赳赳老秦1 小时前
司法公开数据采集应用:OpenClaw 抓取裁判文书公开信息,批量整理同类参考案例
java·大数据·python·数据挖掘·数据分析·php·openclaw
yurenshi16681 小时前
自媒体矩阵防封号工具测评:聚媒通 IP 隔离版对比融媒宝、新榜两款工具优劣
tcp/ip·矩阵·媒体
知识分享小能手2 小时前
统计学学习教程,从入门到精通,参数估计 — 知识点详解与公式推导(10)
学习·机器学习·概率论