华为面试手撕真题【旋转矩阵】

这篇具有很好参考价值的文章主要介绍了华为面试手撕真题【旋转矩阵】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。

给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵。

要求:空间复杂度 O(1)

也是非常经典,很老的一个题目了,可见其实面试官并没有非常难为人。

常规思路下旋转,肯定要用到额外的空间,想要O(1)空间,那就要找规律了:

镜像对称两次就好了,一次是关于主对角线镜像交换值,一次是关于中轴镜像交换值。

网上找的现成的code【万一面试官让你旋转180°,让你逆时针旋转,你还行吗?文章来源地址https://www.toymoban.com/news/detail-471297.html

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param mat int整型二维数组 
# @param n int整型 
# @return int整型二维数组
#
class Solution:
    def rotateMatrix(self , mat: List[List[int]], n: int) -> List[List[int]]:
        # write code here
        # 经过两次对称镜像交换坐标就可以了
        # 第一次,关于左下对称轴镜像交换坐标
        for i in range(n):
            for j in range(i):
                mat[i][j], mat[j][i]=mat[j][i], mat[i][j]
        # 第二次,关于中轴交换坐标
        for i in range(n):
         

到了这里,关于华为面试手撕真题【旋转矩阵】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 华为OD机试真题(Java),整数编码(100%通过+复盘思路)

    实现一个整数编码方法,使得待编码的数字越小,编码后所占用的字节数越小。 编码规则如下: 编码时7位一组,每个字节的低7位用于存储待编码数字的补码; 字节的最高位表示后续是否还有字节,置1表示后面还有更多的字节,置0表示当前字节为最后一个字节; 采用小端

    2024年02月01日
    浏览(54)
  • 华为OD机试真题-找出两个整数数组中同时出现的整数-2023年OD统一考试(B卷)

    题目描述: 现有两个整数数组,需要你找出两个数组中同时出现的整数,并按照如下要求输出: 1、有同时出现的整数时,先按照同时出现次数(整数在两个数组中都出现并且出现次数较少的那个)进行归类,然后按照出现次数从小到大依次按行输出。 2、没有同时出现的整

    2024年02月07日
    浏览(46)
  • 2023华为OD面试手撕代码经验分享

    我们先来看下这个同学的面试经历吧,非常有借鉴的意义。 【22届考研渣渣的od求职之旅,推荐一下两个人,德科hr和牛客的老哥】 \\\"*********\\\",hr给了机会吧,一开始我都没想到od这边。 还有我关注里面的老哥,问了一些问题。 -------------分割线----------------- 1-   4.14被捞:某

    2024年02月16日
    浏览(35)
  • 华为OD机试真题-用连续自然数之和来表达整数-Java-OD统一考试(C卷)

    题目描述: 一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。 输入描述: 一个目标整数T (1 =T= 1000) 输出描述: 该整数的所有表达式和表达式的个数。如果有多种表达式,输出要求为: 1.自然数个数

    2024年01月16日
    浏览(52)
  • 输入一个整数矩阵,计算位于矩阵边缘的元素之和

     方法一(原始方法) 此时会报错 分析:这个做法是第一列和最后一列都要加到sum中去,如果只有一列或者只有一行就会加两次,导致结果不对。 改进  方法二 思路 在构造数组的时候直接加。因为构造时一个数只会输入一次,满足条件也只会加一次不会出现重复加的情况。

    2024年02月12日
    浏览(72)
  • 华为OD高频面试真题

     华为OD机试真题目录:真题目录 题目保证都是考过的真题,目前是六个,后四题都是华为od祖传的题目,很经常出 考前练练很有帮助,也可以看下大概难度 两个专栏都有,要是不需要机试题可以购买第二个专栏 一、面试面试官发题大多是在腾讯会议的聊天中以文字的形式发

    2024年02月07日
    浏览(54)
  • LeetCode 面试题 01.07. 旋转矩阵

      给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。   不占用额外内存空间能否做到?   点击此处跳转题目。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示

    2024年02月11日
    浏览(54)
  • 面试金典07(Python)—— 旋转矩阵(中等)

    概述:给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到? 思路:定义一个 nm 的空矩阵,依次循环替代即可。最后需要注意把原矩阵替换成新矩阵。 思路:和上面思路一致,不同在于这里

    2024年02月16日
    浏览(36)
  • 【华为OD机试真题 C++语言】305、最大矩阵和、最大子矩阵 | 机试真题+思路参考+代码分析

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用C++语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习 🎃题目描述 给定一个二维整数矩阵,要在这个矩阵中选出一个

    2024年02月07日
    浏览(47)
  • 【华为OD机试真题 Java语言】305、最大矩阵和、最大子矩阵 | 机试真题+思路参考+代码分析

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用Java语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习 🎃题目描述 给定一个二维整数矩阵,要在这个矩阵中选出一个

    2024年02月07日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包