LeetCode 面试题 01.07. 旋转矩阵

这篇具有很好参考价值的文章主要介绍了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]
]

示例 2:

给定 matrix =
[
[ 5, 1, 9,11],
[ 2, 4, 8,10],
[13, 3, 6, 7],
[15,14,12,16]
],
原地旋转输入矩阵,使其变为:
[
[15,13, 2, 5],
[14, 3, 4, 1],
[12, 6, 8, 9],
[16, 7,10,11]
]

  注意:本题与主站 48 题相同:https://leetcode-cn.com/problems/rotate-image/

二、C# 题解

  题目比较简单,依次逆时针覆盖值就好了。代码如下:文章来源地址https://www.toymoban.com/news/detail-665634.html

public class Solution {
    public void Rotate(int[][] matrix) {
        int n = matrix.Length; // 矩阵维度
        int record;            // 记录初始值

        // 逆时针旋转覆盖值
        for (int i = 0; i < n / 2; i++) {         // 外圈轮回
            for (int j = i; j < n - i - 1; j++) { // 每一圈循环覆盖值
                record = matrix[j][i];

                matrix[j][i] = matrix[n - i - 1][j];
                matrix[n - i - 1][j] = matrix[n - j - 1][n - i - 1];
                matrix[n - j - 1][n - i - 1] = matrix[i][n - j - 1];
                matrix[i][n - j - 1] = record;
            }
        }
    }
}
  • 时间复杂度: O ( n 2 ) O(n^2) O(n2)
  • 空间复杂度: O ( 1 ) O(1) O(1)

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

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

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

相关文章

  • LeetCode-48. 旋转图像【数组 数学 矩阵】

    给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[[7,4,1],[8,5,2],[9,6,3]] 示例 2: 输入:m

    2024年04月27日
    浏览(37)
  • leetcode 面试题 02.07. 链表相交

    题目:leetcode 面试题 02.07. 链表相交 描述: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 思路: 简单来说,就是求两个链表交点节点的指针。 这里要注意,交点

    2024年02月13日
    浏览(39)
  • 【LeetCode动态规划#07】01背包问题一维写法(状态压缩)实战,其二(目标和、零一和)

    力扣题目链接(opens new window) 难度:中等 给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。 返回可以使最终数组和为目标数 S 的所有添加符号的方法数。 示例: 输入

    2023年04月18日
    浏览(62)
  • leetcode 542. 01 Matrix(01矩阵)

    矩阵中只有0,1值,返回每个cell到最近的0的距离。 思路: 0元素到它自己的距离是0, 只需考虑1到最近的0是多少距离。 BFS. 先把元素1处的距离更新为无穷大。 0的位置装入queue。 从每个0出发,走上下左右4个方向,遇到0不需要处理,遇到1,距离为当前距离+1. 如果当前距离

    2024年02月12日
    浏览(38)
  • leetcode 力扣刷题 旋转矩阵(循环过程边界控制)

    下面的题目的主要考察点都是,二维数组从左上角开始顺时针(或者逆时针)按圈遍历数组的过程。顺时针按圈遍历的过程如下: 对于每一圈,分为四条边 ,循环遍历就好。这时,对于 四个角 的元素的处理,可以将四条边的遍历分为以下两种情况: 第一种:每条边都从对

    2024年02月12日
    浏览(48)
  • leetcode 542. 01 矩阵

    给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入:mat = [[0,0,0],[0,1,0],[0,0,0]] 输出:[[0,0,0],[0,1,0],[0,0,0]] 示例 2: 输入:mat = [[0,0,0],[0,1,0],[1,1,1]] 输出:[[0,0,

    2024年02月16日
    浏览(33)
  • LeetCode 面试题 01.01. 判定字符是否唯一

      实现一个算法,确定一个字符串 s 的所有字符是否全都不同,点击此处跳转。 示例 1: 输入: s = “leetcode” 输出: false 示例 2: 输入: s = “abc” 输出: true 限制: 0 = len(s) = 100 s[i] 仅包含小写字母 如果你不使用额外的数据结构,会很加分。   使用数组记录出现次数,时

    2024年02月12日
    浏览(35)
  • leetcode 面试题 01.03. URL化

    🌟 leetcode链接:面试题 01.03. URL化 思路: 计算出空格的个数,我们可以知道最后一个字符的位置 endPos ,再从后 end 向前遍历若不是空格正常拷贝,是空格则替换成 %20 ,最终当空格替换完成的时候, endPos 和 end 两个下标会相遇。 代码:

    2024年02月15日
    浏览(47)
  • LeetCode 面试题 04.01. 节点间通路

      节点间通路。给定有向图,设计一个算法,找出两个节点之间是否存在一条路径。   点击此处跳转题目。 示例1: 输入: n = 3, graph = [[0, 1], [0, 2], [1, 2], [1, 2]], start = 0, target = 2 输出: true 示例2: 输入: n = 5, graph = [[0, 1], [0, 2], [0, 4], [0, 4], [0, 1], [1, 3], [1, 4], [1, 3], [2, 3],

    2024年02月09日
    浏览(33)
  • LeetCode in Python 48. Rotate Image/Matrix (旋转图像/矩阵)

    旋转图像/矩阵的重点是寻找旋转前后对应位置的坐标关系。 示例: 图1 旋转图像/矩阵的输入输出示意图  代码:  解释: 1)外层循环控制需要转的大圈圈数,内层循环控制每一圈需要转的小圈圈数,大小圈数的解释见图2,例如n=4,需要循环n // 2 = 2大圈,其中黄色循环箭头

    2024年04月27日
    浏览(57)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包