当前位置: 首页 > news >正文

【LeetCode 热题 100】矩阵 专题(大多原地算法,需要一定思维)

解题思路 在 代码注释中!

文章目录

    • 73. 矩阵置零
    • 54. 螺旋矩阵
    • 48. 旋转图像
    • 240. 搜索二维矩阵 II

73. 矩阵置零

class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {// 难点:原地算法// 直接复用 matrix 第一行 和 第一列,但是会 覆盖, 所以  单独两个变量 记录 第一行,第一列// 单独两个变量 记录 第一行,第一列int r0 = 1, c0 = 1;int n = matrix.size(), m = matrix[0].size();for(int j = 0;j < m;j ++ ) {if(matrix[0][j] == 0) r0 = 0;}for(int i = 0;i < n;i ++ ){if(matrix[i][0] == 0) c0 = 0;}for(int i = 1;i < n;i ++ ){for(int j = 0; j < m;j ++ ){if(matrix[i][j] == 0) matrix[0][j] = matrix[i][0] = 0;}}// 置0for(int j = 1; j < m;j ++ ){if(matrix[0][j] == 0){for(int i = 0;i < n;i ++ ) matrix[i][j] = 0;}}for(int i = 1;i < n;i ++ ){if(matrix[i][0] == 0){for(int j = 0;j < m;j ++ ) matrix[i][j] = 0;}}// 单独的行列if(!r0)for(int j = 0;j < m;j ++ ) matrix[0][j] = 0;if(!c0)for(int i = 0;i < n;i ++ ) matrix[i][0] = 0;}
};

54. 螺旋矩阵

class Solution {
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {// 方向矢量 模拟int n = matrix.size(), m = matrix[0].size();int k = 0;int dx[4] = {-1,0,1,0}, dy[] = {0,1,0,-1};bool st[n][m];memset(st, 0, sizeof st);vector<int> res;int x = 0, y = 0, d = 1;int a, b;while(k < n * m){res.push_back(matrix[x][y]);st[x][y] = true;int a = x + dx[d], b = y + dy[d];if(a < 0 || a >= n || b < 0 || b >= m || st[a][b]) {d = (d + 1) % 4;a = x + dx[d], b = y + dy[d];}x = a, y = b;k ++ ;}return res;}
};

48. 旋转图像

class Solution {
public:void rotate(vector<vector<int>>& matrix) {// 原地算法// 先 对角线翻转(=顺时针180), 然后 左右翻转(=逆时针90) = 顺时针旋转 90 度int n = matrix.size(), m = matrix[0].size();// 对角线 翻转for(int i = 0;i < n;i ++ ){for(int j = 0;j < i;j ++ ){swap(matrix[i][j], matrix[j][i]);}}// 左右翻转for(int i = 0; i < n;i ++ ){for(int j = 0, k = m - 1; j < k;j ++ , k -- ) swap(matrix[i][j], matrix[i][k]);}}
};

240. 搜索二维矩阵 II

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {// 从右上角开始 搜索int n = matrix.size(), m = matrix[0].size();int i = 0, j = m - 1;while(i < n && j >= 0){if(target > matrix[i][j]) i ++ ;else if(target < matrix[i][j]) j -- ;else if(target == matrix[i][j]) return true;}return false;}
};

相关文章:

【LeetCode 热题 100】矩阵 专题(大多原地算法,需要一定思维)

解题思路 在 代码注释中&#xff01; 文章目录 73. 矩阵置零54. 螺旋矩阵48. 旋转图像240. 搜索二维矩阵 II 73. 矩阵置零 class Solution { public:void setZeroes(vector<vector<int>>& matrix) {// 难点&#xff1a;原地算法// 直接复用 matrix 第一行 和 …...

Java 中为什么要把一个数模(10^9+7)

在计算机科学和编程中&#xff0c;经常会遇到需要对结果进行取模操作的情况。模运算是指将一个数除以另一个数&#xff0c;并取得余数的运算。 在 Java 中&#xff0c;常见的一个数取模的值是 (10^97)&#xff0c;即 1000000007。这个特定的数值经常在算法和数学计算中被使用&…...

RPC与REST有什么区别?

原文&#xff1a;RPC与REST有什么区别&#xff1f; 背景 好多开发的同学在工作中&#xff0c;经常分不清RPC和REST的区别&#xff0c;导致经常沟通不在一个层次上。甚至有些同学把这两个当成同一个东西。 RPC与REST的区别&#xff1f; 对比名称 rpc rest 备注 架构风格 RP…...

时间复杂度介绍及其计算

时间复杂度 1.算法效率 如何衡量一个算法的好坏呢&#xff1f;看这段代码&#xff1a; long long Fib(int N) {if(N < 3)return 1;return Fib(N-1) Fib(N-2); }这是斐波那契数列的递归代码&#xff0c;非常简洁&#xff0c;那么这就一定说明它好吗&#xff1f;答案显而易…...

etcd实现大规模服务治理应用实战

导读&#xff1a;服务治理目前越来越被企业建设所重视&#xff0c;特别现在云原生&#xff0c;微服务等各种技术被更多的企业所应用&#xff0c;本文内容是百度小程序团队基于大模型服务治理实战经验的一些总结&#xff0c;同时结合当前较火的分布式开源kv产品etcd&#xff0c;…...

目标检测中 anchor base和anchor free

目标检测中两种不同anchor的生成 趋势&#xff1a;anchor free越来越受到实时性检测的青睐&#xff0c;&#xff0c;&#xff0c;...

TypeC拓展设计方案|TypeC转HDMI设计方案|CS5261/CS5265芯片设计参数对比

集睿智远CS5261/CS5265都可以用于设计TypeC转HDMI方案&#xff0c;低成本TypeC扩展坞设计方案&#xff0c;而两者也有些差异&#xff1a;1.CS5261支持DP1.4输入&#xff0c;一个HDMI1.4输出&#xff0c;即HDMI输出为4K30HZ ;CS5265DP1.4到HDMI2.0转换芯片&#xff0c;即HDMI输出…...

SQL Developer中的Active Data Guard

这篇文章 Display Data Guard configuration in SQL Developer 中&#xff0c;用SQL Developer展示了多种ADG的拓扑。 今天自己也试了一下&#xff0c;还蛮简单的&#xff0c;其实最麻烦的部分在于搭建一个ADG环境。 假设我已有一个ADG环境&#xff0c;即最典型的环境&#x…...

谈谈FFT到底有何用

谈谈FFT到底有何用 FFT快速傅里叶变换是数字信号处理的经典算法,学过DSP或者芯片设计的人大多知道这个算法;但是,大家是否想过,为什么数字信号处理会有那么多FFT呢有人会说,为了分析信号的频谱;那么下边的问题就是,分析频谱对我们的日常需求,比如手机打电话,雷达测量速度和方向…...

MATLAB | 如何绘制这样的描边散点图?

part.-1 前前言 最近略忙可能更新的内容会比较简单&#xff0c;见谅哇&#xff0c;今日更新内容&#xff1a; part.0 前言 看到gzhBYtools科研笔记(推荐大家可以去瞅瞅&#xff0c;有很多有意思的图形的R语言复现&#xff01;&#xff01;)做了这样一张图&#xff1a; 感觉很…...

偶数科技与白鲸开源完成兼容性认证

近日&#xff0c;偶数科技自主研发的云原生分布式数据库 OushuDB v5.0 完成了与白鲸开源集成调度工具 WhaleStudio v2.0 的兼容性相互认证测试。 测试结果显示&#xff0c;双方产品相互良好兼容&#xff0c;稳定运行、安全&#xff0c;同时可以满足性能需求&#xff0c;为企业级…...

【机器学习】Feature scaling and Learning Rate (Multi-variable)

Feature scaling and Learning Rate 1、数据集2、学习率2.1 α \alpha α 9.9e-72.2 α \alpha α 9e-72.3 α \alpha α 1e-7 3、特征缩放3.1 特征缩放的原因3.2 Z-score 归一化3.3 预测3.4 损失等值线 导入所需的库 import numpy as np np.set_printoptions(precision…...

windows编译ncnn

官方代码https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-windows-x64-using-visual-studio-community-2017 编译工具 visual studio 2017 一、编译protobuf 1、下载protobuf protobuf-3.11.2&#xff1a;https://github.com/google/protobuf/archive/v3.11…...

C++和Lua交互总结

C和Lua交互总结 Chapter1. C和Lua交互总结一、Lua与C的交互机制——Lua堆栈二、堆栈的操作三、C 调用 Lua1&#xff09;C获取Lua值2&#xff09;C调用Lua函数示例&#xff1a; 四、Lua 调用 C包装C函数 最后总结一下 Chapter1. C和Lua交互总结 原文链接&#xff1a;https://bl…...

nvm安装和切换node版本

1、nvm list查看已安装的node版本 2、查看当前使用的npm和node版本 3、安装某版本的node 4、 切换node版本...

每日一题8.2 2536

2536. 子矩阵元素加 1 给你一个正整数 n &#xff0c;表示最初有一个 n x n 、下标从 0 开始的整数矩阵 mat &#xff0c;矩阵中填满了 0 。 另给你一个二维整数数组 query 。针对每个查询 query[i] [row1i, col1i, row2i, col2i] &#xff0c;请你执行下述操作&#xff1a;…...

适配器模式(Adapter)

适配器模式用于将一个接口转换成用户希望的另一个接口&#xff0c;适配器模式使接口不兼容的那些类可以一起工作&#xff0c;其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式&#xff0c;也可以作为对象结构型模式。 Adapter is a structural design pattern that…...

Spring学习笔记——1

Spring学习笔记——1 一、Spring入门1.1、学习路线1.2、传统Javaweb开发困惑及解决方法1.3、三种思想的提出和框架概念1.3.1、IoC、DI和AOP思想提出1.3.2、框架的基本特点 1.4、Spring概述1.5、BeanFactory快速入门1.6、ApplicationContext快速入门1.7、BeanFactory与Applicati…...

leetcode 406. 根据身高重建队列

2023.8.2 这题一开始有点让人懵逼的是有两个维度&#xff0c;一个是身高&#xff0c;还一个是前面人高于自己的人数。这种题一般需要先固定一个维度&#xff0c;再去确定另外一个维度&#xff0c;不要想着兼顾。 经过纸上模拟&#xff0c;我的思路是先通过身高进行从大到小排序…...

Matlab实现AGNES算法

在数据分析和机器学习中&#xff0c;聚类是一种常用的无监督学习方法&#xff0c;它可以将数据点按照某种相似度标准进行分组&#xff0c;从而发现数据中的结构和模式。聚类算法有很多种&#xff0c;其中一种比较经典的是AGNES算法&#xff0c;它是一种基于层次的聚类算法&…...

从游戏主机到云端:如何用Sunshine打造你的私人游戏串流服务器

从游戏主机到云端&#xff1a;如何用Sunshine打造你的私人游戏串流服务器 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾经想过&#xff0c;在客厅的电视上玩电脑游戏&am…...

基于RA4M2的便携GPS定位器开发:从硬件选型到低功耗优化全解析

1. 项目概述与核心价值最近在做一个挺有意思的小玩意儿&#xff0c;用瑞萨的RA4M2-SENSOR开发板&#xff0c;折腾出了一个巴掌大小的便携式GPS定位器。这玩意儿听起来好像没啥新鲜的&#xff0c;市面上成品一大堆&#xff0c;但自己从头到尾搭一遍&#xff0c;从选型、画板、写…...

Adams 多体动力学:工业仿真的黄金标准与未来引擎

Adams&#xff08;Automatic Dynamic Analysis of Mechanical Systems&#xff09;是全球多体动力学仿真领域的标杆软件&#xff0c;由 MSC Software 公司开发&#xff08;现隶属于 Hexagon 集团&#xff09;&#xff0c;凭借领先的虚拟样机技术&#xff0c;成为汽车、航空航天…...

一幅精细绝伦的[城市或地点]微缩模型

提示词&#xff1a; 一幅精细绝伦的[城市或地点]微缩模型&#xff0c;无缝搭建于质朴的木桌之上&#xff0c;仿佛整个场景都是实时手工制作而成。场景囊括了[城市或地点]最具标志性的地标、建筑、街道、交通、文化元素和氛围&#xff0c;周围环绕着密 地址&#xff1a;https://…...

美国签证预约机器人:3分钟掌握24小时智能抢号终极方案

美国签证预约机器人&#xff1a;3分钟掌握24小时智能抢号终极方案 【免费下载链接】us-visa-bot US Visa Bot 项目地址: https://gitcode.com/gh_mirrors/us/us-visa-bot 还在为美国签证面试预约的漫长等待而烦恼吗&#xff1f;面对有限的面试名额和激烈的竞争环境&…...

98的堂邀请码色花的堂邀请码

兑换不易&#xff0c;可以联系邮箱sht98sht163.com&#xff0c;出邀请。...

知识竞赛裁判怎么当?评分标准与争议处理

知识竞赛裁判怎么当&#xff1f;评分标准与争议处理公平 专业 高效 守护竞赛的生命线&#x1f3af; 一、裁判的角色与职责知识竞赛裁判是竞赛公平的守护者&#xff0c;不仅要掌握规则&#xff0c;还要具备快速判断和沟通能力。核心职责&#xff1a;&#x1f4cb; 赛前熟悉题…...

LicenseFinder高级配置指南:自定义许可证规则与决策继承

LicenseFinder高级配置指南&#xff1a;自定义许可证规则与决策继承 【免费下载链接】LicenseFinder Find licenses for your projects dependencies. 项目地址: https://gitcode.com/gh_mirrors/li/LicenseFinder LicenseFinder是一款强大的开源许可证管理工具&#xf…...

Emacs-which-key排序与分页功能详解:高效管理大量快捷键的完整指南

Emacs-which-key排序与分页功能详解&#xff1a;高效管理大量快捷键的完整指南 【免费下载链接】emacs-which-key Emacs package that displays available keybindings in popup 项目地址: https://gitcode.com/gh_mirrors/em/emacs-which-key Emacs-which-key是Emacs编…...

创业公司如何借助 Taotoken 的多模型聚合能力快速验证产品 AI 功能

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 创业公司如何借助 Taotoken 的多模型聚合能力快速验证产品 AI 功能 对于资源有限的创业团队而言&#xff0c;在产品早期快速验证核…...