力扣热题100题解(c++)—矩阵

73.矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
在这里插入图片描述
在这里插入图片描述

    int m = matrix.size();      // 行数int n = matrix[0].size();   // 列数bool firstRowZero = false;  // 标记第一行是否包含 0bool firstColZero = false;  // 标记第一列是否包含 0// 1. 检查第一行和第一列是否包含 0for (int j = 0; j < n; ++j) {if (matrix[0][j] == 0) {firstRowZero = true;break;}}for (int i = 0; i < m; ++i) {if (matrix[i][0] == 0) {firstColZero = true;break;}}// 2. 使用第一行和第一列作为标记位for (int i = 1; i < m; ++i) {for (int j = 1; j < n; ++j) {if (matrix[i][j] == 0) {matrix[i][0] = 0; // 标记第 i 行需要置零matrix[0][j] = 0; // 标记第 j 列需要置零}}}// 3. 根据标记位将对应的行和列置零(除了第一行和第一列)for (int i = 1; i < m; ++i) {for (int j = 1; j < n; ++j) {if (matrix[i][0] == 0 || matrix[0][j] == 0) {matrix[i][j] = 0;}}}// 4. 根据 firstRowZero 和 firstColZero 将第一行和第一列置零if (firstRowZero) {for (int j = 0; j < n; ++j) {matrix[0][j] = 0;}}if (firstColZero) {for (int i = 0; i < m; ++i) {matrix[i][0] = 0;}}

54.螺旋矩阵

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
在这里插入图片描述

    vector<int> result;if (matrix.empty()) {return result;}int top = 0, bottom = matrix.size() - 1;int left = 0, right = matrix[0].size() - 1;while (top <= bottom && left <= right) {// 1. 从左到右for (int i = left; i <= right; ++i) {result.push_back(matrix[top][i]);}top++;// 2. 从上到下for (int i = top; i <= bottom; ++i) {result.push_back(matrix[i][right]);}right--;if (top <= bottom && left <= right) { // 避免重复添加// 3. 从右到左for (int i = right; i >= left; --i) {result.push_back(matrix[bottom][i]);}bottom--;// 4. 从下到上for (int i = bottom; i >= top; --i) {result.push_back(matrix[i][left]);}left++;}}return result;

48.旋转图像

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
在这里插入图片描述
在这里插入图片描述

    int n = matrix.size();// 1. 转置矩阵for (int i = 0; i < n; ++i) {for (int j = i + 1; j < n; ++j) { // 注意 j 从 i+1 开始,避免重复交换swap(matrix[i][j], matrix[j][i]);}}// 2. 反转每一行for (int i = 0; i < n; ++i) {reverse(matrix[i].begin(), matrix[i].end());}

240.搜索二维矩阵(二)

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:
每行的元素从左到右升序排列。
每列的元素从上到下升序排列。
在这里插入图片描述
在这里插入图片描述

    if (matrix.empty() || matrix[0].empty()) {return false;}int m = matrix.size();    // 行数int n = matrix[0].size(); // 列数int row = 0;           // 从第一行开始int col = n - 1;       // 从最后一列开始while (row < m && col >= 0) {if (matrix[row][col] == target) {return true;  // 找到了目标值} else if (matrix[row][col] < target) {row++;          // 目标值更大,向下移动一行} else {col--;          // 目标值更小,向左移动一列}}return false;  // 没有找到目标值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/77506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本地部署DeepSeek-R1(Dify升级最新版本、新增插件功能、过滤推理思考过程)

下载最新版本Dify Dify1.0版本之前不支持插件功能&#xff0c;先升级DIfy 下载最新版本&#xff0c;目前1.0.1 Git地址&#xff1a;https://github.com/langgenius/dify/releases/tag/1.0.1 我这里下载到老版本同一个目录并解压 拷贝老数据 需先停用老版本Dify PS D:\D…

PostSwigger Web 安全学习:CSRF漏洞3

CSRF 漏洞学习网站&#xff1a;What is CSRF (Cross-site request forgery)? Tutorial & Examples | Web Security Academy CSRF Token 基本原理 CSRF Token 是服务端生成的唯一、随机且不可预测的字符串&#xff0c;用于验证客户端合法校验。 作用&#xff1a;防止攻击…

用 Nodemon 解决 npm run serve 频繁重启服务

Nodemon 是一个基于 Node.js 构建的开发工具&#xff0c;专为帮助开发者自动监控项目文件的更改而设计。每当文件发生变更时&#xff0c;Nodemon 会自动重启 Node.js 服务器&#xff0c;无需手动停止并重启。这对于提升开发速度、减少人工操作非常有帮助&#xff0c;尤其适用于…

django admin 中更新表数据 之后再将数据返回管理界面

在Django中&#xff0c;更新数据库中的数据并将其重新显示在Django Admin界面上通常涉及到几个步骤。这里我将详细说明如何在Django Admin中更新表数据&#xff0c;并确保更新后的数据能够立即在管理界面上显示。 定义模型 首先&#xff0c;确保你的模型&#xff08;Model&…

真.从“零”搞 VSCode+STM32CubeMx+C <1>构建

目录 前言 准备工作 创建STM32CubeMx项目 VSCode导入项目&配置 构建错误调试 后记 前言 去年10月开始接触单片机&#xff0c;一直在用树莓派的Pico&#xff0c;之前一直用Micropython&#xff0c;玩的不亦乐乎&#xff0c;试错阶段优势明显&#xff0c;很快就能鼓捣一…

C语言学习之结构体

在C语言中&#xff0c;我们已经学了好几种类型的数据。比如整型int、char、short等&#xff0c;浮点型double、float等。但是这些都是基本数据类型&#xff0c;而这些数据类型应用在实际编程里显然是不够用的。比如我们没有办法用一旦数据类型来定义一个”人“的属性。因此这里…

架构-计算机系统基础

计算机系统基础 一、计算机系统组成 &#xff08;一&#xff09;计算机系统层次结构 硬件组成 主机&#xff1a;包含CPU&#xff08;运算器控制器&#xff09;、主存储器&#xff08;内存&#xff09;。外设&#xff1a;输入设备、输出设备、辅助存储器&#xff08;外存&…

【计算机网络性能优化】从基础理论到实战调优

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现案例1&#xff1a;iPerf3带宽测试案例2&#xff1a;TCP窗口优化案例3&#xff1a;QoS流量整形 运行…

Python 自动化办公:Excel 数据处理的“秘密武器”

引言 在日常的 IT 办公场景里&#xff0c;Excel 是数据处理与分析的 “常胜将军”。无论是财务人员整理账目、销售团队统计业绩&#xff0c;还是运营人员分析用户数据&#xff0c;Excel 都发挥着关键作用。但面对海量数据&#xff0c;手动操作 Excel 不仅效率低下&#xff0c;还…

缓存集群技术深度解析:从原理到实战

缓存集群技术深度解析&#xff1a;从原理到实战 一、缓存集群核心定位与架构选型 1. 集群模式核心价值 缓存集群通过数据分片、高可用保障、水平扩展解决单节点瓶颈&#xff0c;核心能力包括&#xff1a; 数据分片&#xff1a;将数据分散到多个节点&#xff0c;突破单节点内…

CSDN编辑文章时如何自动生成目录

如何自动生成目录 前置条件1. 插入目录标识符2. 编写标题层级 前置条件 需要使用markdown编辑&#xff0c;并且只有按照markdown语法编写不同的标题级别&#xff0c;才能使用这个方法自动生成对应的目录。 1. 插入目录标识符 在文章的顶部添加以下代码&#xff1a; [TOC](文…

产品经理对于电商接口的梳理||电商接口文档梳理与接入

接口梳理7个注意点总结 ①注意要测试环境和生产环境。生产上线时候要提醒研发换到生产环境调用。 ②注意必输字段和选输字段&#xff0c;要传入字段的含义和校验。枚举值不清楚含义的要询问对方含义&#xff0c;比如说单据类型字段枚举值是B2C发货单&#xff0c;BBC发货单&am…

更快的图像局部修改与可控生成:Flex.2-preview

Flex.2-preview 文本生成图像扩散模型介绍 一、模型简介 Flex.2-preview 是一种 开源的 80 亿参数文本生成图像扩散模型&#xff0c;具备通用控制和修复支持功能&#xff0c;是 Flex.1alpha 的下一代版本。该模型由社区开发并为社区服务&#xff0c;采用 Apache 2.0 许可证&a…

【Castle-X机器人】一、模块安装与调试:机器人底盘

持续更新。。。。。。。。。。。。。。。 【ROS机器人】模块安装 一、Castle-X机器人底盘1.1 结构概述1.2 驱动执行结构1.3 环境传感器1.4 电气系统1.5 Castle-x机器人底盘测试激光雷达传感器测试及数据可视化超声波传感器实时数据获取防跌落传感器测试陀螺仪测试键盘控制测试…

条件、列表渲染.

#### v-for 1. 渲染列表 vue <template> <ul v-for"(item,index) in list" > <li>{{ item }}</li> </ul> </template> <script setup> import { ref } from vue; let list ref([苹果, 香蕉, 橙子]) </script>…

node20的安装和vue的入门准备

一、node20的安装 直接下载路径&#xff1a;https://nodejs.org/download/release/v20.11.0/node-v20.11.0-x64.msi 安装&#xff0c;双击msi文件 点击同意协议 更改下载路径 什么也不用选&#xff0c;点击next进行下一步 什么也不用选&#xff0c;点击next进行下一步 点击安…

从 Java 到 Kotlin:在现有项目中迁移的最佳实践!

全文目录&#xff1a; 开篇语 1. 为什么选择 Kotlin&#xff1f;1.1 Kotlin 与 Java 的兼容性1.2 Kotlin 的优势1.3 Kotlin 的挑战 2. Kotlin 迁移最佳实践2.1 渐进式迁移2.1.1 步骤一&#xff1a;将 Kotlin 集成到现有的构建工具中2.1.2 步骤二&#xff1a;逐步迁移2.1.3 步骤…

威雅利电子|业界领先的高隔离度用于5G基站的吸收式SPDT开关“NT1819“

业界领先的高隔离度 用于5G基站的吸收式SPDT开关"NT1819" 为了实现智能社会&#xff0c;已经启动了5G服务。这样&#xff0c;高速、低延迟、大容量的数据通信成为可能&#xff0c;也给我们的生活和工业发展带来了巨大的变化。 在5G基站有很多天线&#xff0c;每个天…

Diamond软件的使用--(6)访问FPGA的专用SPI接口

1.什么是FPGA的专用SPI接口&#xff1f; 此处的SPI FLASH接口即为FPGA的专用SPI接口&#xff0c;上电时&#xff0c;FPGA从该FLASH读出程序并运行。 2.访问SPI PROM需要注意哪些地方&#xff1f; 1&#xff09;处于MASTER SPI MODE 2&#xff09;调用USRMCLK原语&#xff0c;…

Go 语言中的 `select` 语句详解

select 是 Go 语言中处理通道(Channel)操作的一个强大控制结构&#xff0c;它允许 goroutine 同时等待多个通道操作。下面我将全面详细地解释 select 语句的各个方面。 基本语法 select 语句的基本语法如下&#xff1a; select { case <-ch1:// 如果从 ch1 成功接收数据&…