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

力扣LeetBook数组和字符串--二维数组

1.旋转矩阵

题目链接

想了那么久的各种旋转,对角线,其实把问题搞复杂了。

  • 旋转90度的本质无非就是转置+镜像对称
    转置是什么?:将矩阵的行和列互换。
    镜像对称:把矩阵从中间对折,互换位置

矩阵 A

A = [ 1 3 0 2 4 6 ] A = \begin{bmatrix} 1 & 3 & 0 \\ 2 & 4 & 6 \\ \end{bmatrix} A=[123406]

转置后 Aᵀ

A ⊤ = [ 1 2 3 4 0 6 ] A^\top = \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ 0 & 6 \\ \end{bmatrix} A= 130246

class Solution {
public:void rotate(vector<vector<int>>& matrix) {int n=matrix.size();//矩阵的长for(int i=0;i<n;i++)for(int j=i;j<n;j++)swap(matrix[i][j],matrix[j][i]);//转置for(int i=0;i<n;i++)for(int j=0;j<n/2;j++)swap(matrix[i][j],matrix[i][n-j-1]);//镜像对称}
};

Python

class Solution(object):def rotate(self, matrix):""":type matrix: List[List[int]]:rtype: None Do not return anything, modify matrix in-place instead."""n=len(matrix)for i in range(n):#0,n-1for j in range(i,n):#i,n-1matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]  # 直接交换for i in range(n):for j in range(n//2):matrix[i][j], matrix[i][n - j - 1] = matrix[i][n - j - 1], matrix[i][j]

2.零矩阵

题目链接

思路:遍历找出0元素所在行和列的位置,把位置标记出来。
第二次遍历数组,行或列有一个被标记,就把该位置置为0

注意:int flag_row[row]={};错误
row 和 col 虽然是变量,但它们的值是在运行时确定的(比如从 matrix.size() 和 matrix[0].size() 获取),而不是在编译时确定的常量。
在标准 C++ 中,数组的大小必须是编译时常量(比如 constexpr 或 #define 定义的常量)

class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {int row=matrix.size();//行int col=matrix[0].size();//列// int flag_row[row]={};// int flag_col[col]={};std::vector<int> flag_row(row, 0);  // 初始化为全 0std::vector<int> flag_col(col, 0);  // 初始化为全 0for(int i=0;i<row;i++){for(int j=0;j<col;j++){if(matrix[i][j]==0){flag_row[i]=1;flag_col[j]=1;}}}//置为0for(int i=0;i<row;i++){for(int j=0;j<col;j++){if(flag_row[i]||flag_col[j])matrix[i][j]=0;}}}
};

Python版本

class Solution:def setZeroes(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""row=len(matrix)col=len(matrix[0])flag_row=[0]*rowflag_col=[0]*colfor i in range(row):for j in range(col):if matrix[i][j]==0:flag_row[i]=1flag_col[j]=1for i in range(row):for j in range(col):if flag_row[i]  or flag_col[j]:matrix[i][j]=0

相关文章:

力扣LeetBook数组和字符串--二维数组

1.旋转矩阵 题目链接 想了那么久的各种旋转&#xff0c;对角线&#xff0c;其实把问题搞复杂了。 旋转90度的本质无非就是转置镜像对称 转置是什么&#xff1f;&#xff1a;将矩阵的行和列互换。 镜像对称&#xff1a;把矩阵从中间对折&#xff0c;互换位置 矩阵 A A [ 1 3 0…...

Linux开发工具(apt,vim,gcc)

目录 yum/apt包管理器 Linux编辑器 vim 1.见一见vim 2.vim的多模式 3.命令模式底行模式等 4.vim的配置 Linux编译器 gcc/g 1.预处理&#xff08;宏替换&#xff09; 2.编译&#xff08;生成汇编&#xff09; 3.汇编&#xff08;生成机器可识别代码&#xff09; 4.连…...

C# ExcelWorksheet 贴图

C# ExcelWorksheet 贴图 在C#中,如果你想在Excel工作表中插入图片(例如,在ExcelWorksheet中贴图),你可以使用ClosedXML或EPPlus这样的库来操作Excel文件。下面我将分别介绍如何使用这两个库来实现这一功能。 使用ClosedXML 首先,确保你已经安装了ClosedXML包。你可以通…...

鸿蒙Next开发真机调试签名申请流程

背景&#xff1a; 在学习鸿蒙next开发应用的初期总是会遇到一堆的问题&#xff0c;毕竟鸿蒙next开发不管是他的ArKTS语言还是他的开发工具DevEco Studio都还在起步阶段&#xff0c;就像当初的Android起步一样&#xff0c;总会有资料不足的一些问题。就比如我们学习下载完DevEco…...

[yolov11改进系列]基于yolov11引入上下文锚点注意力CAA的python源码+训练源码

【CAA介绍】 本文记录的是基于CAA注意力模块的RT-DETR目标检测改进方法研究。在远程遥感图像或其他大尺度变化的图像中目标检测任务中&#xff0c;为准确提取其长距离上下文信息&#xff0c;需要解决大目标尺度变化和多样上下文信息时的不足的问题。CAA能够有效捕捉长距离依赖…...

【Elasticsearch】 查询优化方式

在优化Elasticsearch的查询性能时&#xff0c;可以从多个维度着手&#xff0c;包括索引设计、查询优化、集群配置、数据管理以及监控分析等。常见的优化方式和策略有以下几种&#xff1a; 一、索引优化 合理设计字段类型&#xff1a; 字段类型选择&#xff1a; 对于不需要分词的…...

Xcode 16.4 + iOS 18 系统运行时崩溃:___cxa_current_primary_exception 符号丢失的原因与解决方案

在使用 Xcode 16.4 构建项目&#xff0c;运行到 iOS 18.3 或更早版本系统&#xff08;包括模拟器&#xff09;时&#xff0c;出现了如下的运行时崩溃&#xff1a; dyld[22183]: Symbol not found: ___cxa_current_primary_exceptionReferenced from: /.../WidgetOn.app/Widget…...

【linux】全志Tina预编译一个so库文件到根文件系统/usr/lib/下

一、sdk中新建文件夹 路径&#xff1a; V:\t113\work3\t113\openwrt\package\feeds\libs\md5util md5util为需要注入的库文件夹。 文件结构 libs md5util files libmd5util.so makefile etc.. 二、编写makefile include $(TOPDIR)/rules.mkPKG_NAME : md5util PKG_VERSIO…...

C# 类和继承(成员访回修饰符)

成员访回修饰符 本章之前的两节阐述了类的可访问性。对类的可访问性&#xff0c;只有两种修饰符&#xff1a;internal和public。 本节阐述成员的可访问性。类的可访问性描述了类的可见性&#xff1b;成员的可访问性描述了类成员的可 见性。 声明在类中的每个成员对系统的不同…...

c++ stl容器之map用法

目录 &#xff08;1&#xff09;map介绍 &#xff08;2&#xff09;map、multimap、unordered_map区别 &#xff08;3&#xff09;map用法 1.map接口表 2.使用举例 插入数据与遍历数据 查找关键字和值 删除元素 按照值排序 &#xff08;4&#xff09;multimap用法 &…...

Linux-文件管理及归档压缩

1.根下的目录作用说明&#xff1a; /&#xff1a;Linux系统中所有的文件都在根下/bin&#xff1a;(二进制命令目录)存放常用的用户命令/boot&#xff1a;系统启动时的引导文件&#xff08;内核的引导配置文件&#xff0c;grub配置文件&#xff0c;内核配置文件&#xff09; 例…...

结合Jenkins、Docker和Kubernetes等主流工具,部署Spring Boot自动化实战指南

基于最佳实践的Spring Boot自动化部署实战指南,结合Jenkins、Docker和Kubernetes等主流工具,提供从环境搭建到生产部署的完整流程: 一、环境准备与工具选型​​ ​​1.基础设施​​ ​​Jenkins服务器​​:安装Jenkins LTS版本,配置JDK(推荐JDK 11+)及Maven/Gradle插…...

微软认证考试科目众多?该如何选择?

在云计算、人工智能、数据分析等技术快速发展的今天&#xff0c;微软认证&#xff08;Microsoft Certification&#xff09;已成为IT从业者、开发者、数据分析师提升竞争力的重要凭证。但面对众多考试科目&#xff0c;很多人不知道如何选择。本文将详细介绍微软认证的考试方向、…...

MCP协议在LLM系统中的架构与实现原理研究

MCP协议的角色和功能定位 模型上下文协议(Model Context Protocol, MCP) 是由Anthropic公司(Claude模型的发布方)提出的一种开放协议,旨在标准化大型语言模型(LLM)与外部数据源、工具和服务之间的交互方式。可以将MCP类比为AI应用的“USB-C接口”:通过统一的接口协议,…...

Dify工作流实践—根据word需求文档编写测试用例到Excel中

前言 这篇文章依赖到的操作可查阅我之前的文章&#xff1a; dify里的大模型是怎么添加进来的&#xff1a;在Windows本地部署Dify详细操作 flask 框架app.route()函数的开发和调用&#xff1a;PythonWeb开发框架—Flask工程创建和app.route使用详解 结构化提示词的编写&…...

【LC实战派】小智固件编译

这篇写给立创吴总&#xff0c;是节前答应他配合git代码的说明&#xff1b;也给所有对小智感兴趣的小伙伴。 请多提意见&#xff0c;让这份文档更有价值 - 第一当然是拉取源码 - git clone https://github.com/78/xiaozhi-esp32.git 完成后&#xff0c;先查看固件中实际的…...

HTTP(超文本传输协议)详解

目录 一、基本概念 二、HTTP报文&#xff08;结构&#xff09; (一) 请求报文 (二) 响应报文 三、HTTP请求方法 1. GET方法 2. POST方法 3. PUT方法 4. HEAD方法 5. DELETE 6. OPTIONS 一、知识扩展 7. TRACE 8. CONNECT 四、HTTP持久通信 (一) HTTP keep-alive…...

Unity安卓平台开发,启动app并传参

using UnityEngine; using System;public class IntentReceiver : MonoBehaviour {public bool isVR1;void Start(){Debug.LogError("app1111111111111111111111111");if (isVR1){LaunchAnotherApp("com.HappyMaster.DaKongJianVR2");}else{// 检查是否有传…...

jdbcTemplate.query备忘录

jdbcTemplate.query中使用全部字符串和参数注入&#xff0c; 查询速度为什么差距这么大 如何正确使用JdbcTemplate参数化查询 1、使用?占位符 String sql "SELECT * FROM users WHERE name LIKE ?"; List<User> users jdbcTemplate.query(sql,new Object[…...

如何搭建Z-Blog PHP版本:详细指南

Z-Blog是一款功能强大且易于使用的博客平台&#xff0c;支持PHP和ASP两种环境。本文将重点介绍如何在PHP环境下搭建Z-Blog博客系统&#xff0c;帮助您快速上线自己的个人博客站点。 准备工作 1. 获取Z-Blog PHP版本 首先&#xff0c;访问Z-Blog官方网站下载最新版本的Z-Blog…...

Docker 常用命令详解

&#x1f433; Linux 安装 Docker 及常用命令详解&#xff08;适用于 Ubuntu&#xff09; &#x1f4e6; 一、安装 Docker&#xff08;Ubuntu 系统&#xff09; 1. 更新系统 sudo apt update sudo apt upgrade -y2. 安装必要依赖 sudo apt install -y apt-transport-https …...

uniapp uni-id-co errCode“:“uni-id-captcha-required“,“errMsg“:“Captcha required

连续登录失败后就会出现图形验证码校验&#xff0c;如果前端不需要图形验证码校验&#xff0c;uni-id-co文件夹下找到module下的login文件夹下的login.js,注释掉Captcha相关校验&#xff0c;关掉即可 const {preLoginWithPassword,postLogin } require(../../lib/utils/login)…...

Github Copilot新特性:Copilot Spaces-成为某个主题的专家

概述 当今的工程团队都会面临知识碎片化的问题。关键的上下文分散在代码、文档和团队成员的头脑中&#xff0c;这使得他们很难在一个新的领域快速上手并完成工作。Copilot Spaces 通过集中您的项目上下文解决了这个问题&#xff0c;因此 Copilot 可以根据您的工作提供更智能、…...

React 第五十三节 Router中 useRouteError 的使用详解和案例分析

前言 useRouteError 是 React Router v6.4 引入的关键错误处理钩子&#xff0c;用于在 路由错误边界&#xff08;Error Boundary&#xff09; 中获取路由操作过程中发生的错误信息。 它提供了优雅的错误处理机制&#xff0c;让开发者能够创建用户友好的错误界面。 一、useRou…...

12分钟讲解主流React库

本内容是对 Every React Library Explained in 12 Minutes 内容的翻译与整理。 React Router React Router 是一个用于控制网站导航的库&#xff0c;同时也允许你自定义网站的 URL。它使用自定义组件&#xff0c;如 BrowserRouter、Routes 和 Route 组件&#xff0c;以创建 UR…...

《doubao-lite-32k 模型缓存机制使用指南》

doubao-lite-32k 模型缓存机制使用指南 一、缓存概述 1. 缓存作用 doubao-lite-32k 模型的缓存(Session 缓存)主要用于多轮对话场景,实现以下功能: 存储历史对话信息(Token),避免重复传输上下文,减少计算资源消耗。 优化长上下文(最长 32K Token)处理效率,提升多…...

攻防世界-XCTF-Web安全最佳刷题路线

每次写序都是最烦恼的&#xff0c;都不知道写什么&#xff0c;CTF是团队竞赛&#xff0c;有很多分支&#xff08;Web安全&#xff0c;密码学&#xff0c;杂项&#xff0c;Pwn&#xff0c;逆向&#xff0c;安卓&#xff09;&#xff0c;可以每个领域都涉猎&#xff0c;或许感觉那…...

t021-高校物品捐赠管理系统【包含源码材料!!!!】

视频演示地址 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装高校物品捐赠管理系统软件来发挥其高效地信息…...

设计模式——面向对象设计六大原则

摘要 本文详细介绍了设计模式中的六大基本原则&#xff0c;包括单一职责原则、开放封闭原则、里氏替换原则、接口隔离原则、依赖倒置原则和合成复用原则。每个原则都通过定义、理解、示例三个部分进行阐述&#xff0c;旨在帮助开发者提高代码的可维护性和灵活性。通过具体代码…...

Python制作史莱姆桌面宠物!可爱的

史莱姆桌面宠物 一个可爱的桌面史莱姆宠物&#xff0c;它会在您的任务栏上移动并提供可视化设置界面。 这里写目录标题 史莱姆桌面宠物功能特点安装与运行直接运行方式创建可执行文件 使用说明自定义GIF说明打包说明开源地址 功能特点 可爱的史莱姆在任务栏上自动移动支持…...