力扣-Hot100-矩阵【算法学习day.36】

前言

###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

tip:下面三题就是简单的模拟,所以直接给代码了,也可以去看看力扣大佬们另辟蹊径的题解

1.矩阵置零

题目链接: 73. 矩阵置零 - 力扣(LeetCode)

题面:

代码:

java 复制代码
class Solution {
    public void setZeroes(int[][] matrix) {
        int n = matrix.length;
        int m = matrix[0].length;
        int[][] flag = new int[n][m];
        for(int i = 0;i<n;i++){
            for(int j = 0;j<m;j++){
                if(matrix[i][j]==0&&flag[i][j]==0){
                    for(int k = 0;k<n;k++){
                        if(matrix[k][j]!=0){
                            flag[k][j] = 1;
                        }
                        matrix[k][j] = 0;
                        
                    }
                    for(int k = 0;k<m;k++){
                        if(matrix[i][k]!=0){
                            flag[i][k] = 1;
                        }
                        matrix[i][k] = 0;
                    }
                }
            }
        }
    }
}

2.旋转图像

题目链接: 48. 旋转图像 - 力扣(LeetCode)

题面:

代码:

java 复制代码
class Solution {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
         int t = n/2;
            int count = 0;
            while(t!=0){
                t--;
             //存第一行
             int[] arr = new int[n];
             for(int i =count;i<n-(count);i++){
                arr[i] = matrix[count][i];
             }
             //左边转到上面
             for(int i = count;i<n-(count);i++){
                matrix[count][i] = matrix[n-1-i][count];
             } 
             //下边转到左边
             for(int i = count;i<n-(count);i++){
                matrix[i][count] = matrix[n-1-count][i];
             }
             //右边转到下面
              for(int i = count;i<n-(count);i++){
                matrix[n-1-count][i] = matrix[n-1-i][n-1-count];
             }
             //上面转到右边
              for(int i = count;i<n-(count);i++){
                matrix[i][n-1-count] = arr[i];
             }

              count++;
            }

    }
}

3.搜索二维矩阵II

题目链接: 240. 搜索二维矩阵 II - 力扣(LeetCode)

题面:

代码:

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int n = matrix.length;
        int m = matrix[0].length;
        if(matrix[n-1][m-1]<target)return false;
        int r = 0;
        int low = 0;
        while(r<m&&matrix[0][r]<=target)r++;
        while(low<n&&matrix[low][0]<=target)low++;
        for(int i = 0;i<low;i++){
            for(int j = 0;j<r;j++){
                if(matrix[i][j]==target)return true;
            }
        }
        return false;
    }
}

后言

上面是力扣Hot100的矩阵专题,下一篇是其他专题的习题,希望有所帮助,一同进步,共勉!

相关推荐
科研online17 分钟前
基于多源数据和XGBoost-SHAP分析中国大陆绿地碳汇空间变异影响因素的非线性相关性与尺度差异
算法·学习方法
Cthy_hy36 分钟前
拓扑排序超详解:原理 + Kahn 贪心算法
python·算法·贪心算法
三品吉他手会点灯1 小时前
C语言学习笔记 - 43.运算符与表达式 - 运算符1 - 运算符的分类和简单介绍
c语言·笔记·学习·算法
VkN2X2X4b1 小时前
算法复杂度的实验验证与误差分析的技术8
算法
其利天下技术1 小时前
风扇灯无刷电机自适应算法实战指南
算法·cocos2d·无刷电机自适应算法·bldc驱动自适应算法·其利无刷电机驱动算法
8Qi81 小时前
LeetCode 494:目标和(Target Sum)—— 题解 ✅
算法·leetcode·职场和发展·动态规划·01背包
hujinyuan201602 小时前
2026年3月 中国电子学会青少年软件编程(Python)三级考试试卷 真题及答案
java·python·算法
froyoisle2 小时前
CSP-J 历年复赛 T1 及解析(2019~2025)
数据结构·c++·算法·csp-j·csp·算法竞赛·信息学
珊瑚里的鱼3 小时前
【动态规划】打家劫舍Ⅱ
算法·动态规划
吃好睡好便好3 小时前
芒种时节如何保健
学习·生活