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

C语言 | Leetcode C语言题解之第542题01矩阵

题目:

题解:

/*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/
typedef struct{int x;int y;
}coordinate;//坐标结构体int** updateMatrix(int** mat, int matSize, int* matColSize, int* returnSize, int** returnColumnSizes){int dx[4]={-1,0,1,0};//用作坐标偏移int dy[4]={0,-1,0,1};//新建队列,存放坐标数组coordinate* queue=(coordinate*)malloc(sizeof(coordinate) * 10240);int front=0;int rear=0;//设置结果数组返回值*returnSize=matSize;*returnColumnSizes=matColSize;//returnColumnSizes是一个二级指针,解引用之后是一个一级指针,可以直接等于//定义二级指针,申请空间构建二维数组当结果int** result=(int**)malloc(sizeof(int*) * matSize);//申请matSize个空间存储每一个行指针for(int i=0;i<matSize;i++){//result[i]=(int*)malloc(sizeof(int) * (*matColSize)); *(result+i)=(int*)malloc(sizeof(int) * (*matColSize));//给行指针申请*matColSize个空间//初始化二维数组--原数组为0的地方初始化为0,为1的地方初始化化为max,方便后面进行距离比较for(int j=0;j<*matColSize;j++){if(mat[i][j]==0){result[i][j]=0;queue[rear].x=i;queue[rear].y=j;//将该坐标入队rear++;//队尾指针后移一位,指向空}else{result[i][j]=INT_MAX;//INT_MAX --> 整数类型所能表达的最大值}}}//开始进行广度优先搜索int x,y;//扩散后的坐标while(front!=rear){for(int i=0;i<4;i++){x=queue[front].x+dx[i];y=queue[front].y+dy[i];if(x>=0 && x<matSize && y>=0 && y<*matColSize){//result[x][y]为INT_MAX的时候if(result[x][y] > result[queue[front].x][queue[front].y]+1){result[x][y] = result[queue[front].x][queue[front].y]+1;queue[rear].x=x;//将新的已经被赋值所求距离的位置坐标入队queue[rear].y=y;rear++;}}}front++;//队列头指针后移,接着往后遍历}return result;
}

相关文章:

C语言 | Leetcode C语言题解之第542题01矩阵

题目&#xff1a; 题解&#xff1a; /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/ type…...

论文阅读笔记:Image Processing GNN: Breaking Rigidity in Super-Resolution

论文阅读笔记&#xff1a;Image Processing GNN: Breaking Rigidity in Super-Resolution 1 背景2 创新点3 方法4 模块4.1 以往SR模型的刚性4.2 图构建4.2.1 度灵活性4.2.2 像素节点灵活性4.2.3 空间灵活性 4.3 图聚合4.4 多尺度图聚合模块MGB4.5 图聚合层GAL 5 效果5.1 和SOTA…...

前端介绍|基础入门-html+css+js

文章目录 本课程有什么&#xff1f;前端是什么&#xff1f;1. **前端概述**2. **前端的工作职责**3. **前端技术栈**6. **前端开发工具**7. **HTML、CSS、JS的关系** 本课程有什么&#xff1f; 本套课程是零基础入门保姆级课程&#xff0c;课程主要内容包含&#xff1a; HTML…...

[WSL][桌面][X11]WSL2 Ubuntu22.04 安装Ubuntu桌面并且实现GUI转发(Gnome)

1. WSL安装 这里不再赘述&#xff0c;WSL2支持systemd&#xff0c;如果你发现其没有systemd相关指令&#xff0c;那么你应该看看下面这个 https://blog.csdn.net/noneNull0/article/details/135950369 但是&#xff0c;Ubuntu2204用不了这个脚本&#xff0c;比较蛋疼。 – …...

PMC如何根据实际情况调整生产作业计划?

面对原材料价格波动、市场需求突变、供应链不确定性增加等多重挑战&#xff0c;PMC人员如何根据实际情况迅速调整生产作业计划&#xff0c;成为了决定企业能否稳健前行的关键。今天&#xff0c;天行健企业管理咨询公司就来深入探讨&#xff0c;PMC高手们是如何在复杂多变的环境…...

unity中 骨骼、纹理和材质关系

在Unity和游戏开发中&#xff0c;骨骼&#xff08;Skeleton&#xff09;、纹理&#xff08;Texture&#xff09;和材质&#xff08;Material&#xff09;是角色和物体渲染的关键组成部分&#xff0c;它们各自的作用和关系密切关联&#xff0c;通常共同工作来实现一个模型的最终…...

18、论文阅读:AOD-Net:一体化除雾网络

AOD-Net: All-in-One Dehazing Network 前言介绍相关工作物理模型传统方法深度学习方法 建模与扩展变换后的公式网络设计与高级特征任务相结合 除雾评价数据集和实现 前言 该论文提出了一种基于卷积神经网络&#xff08;CNN&#xff09;的图像去雾模型&#xff0c;称为 All-in…...

Hadoop生态圈框架部署(五)- Zookeeper完全分布式部署

文章目录 前言一、Zookeeper完全分布式部署&#xff08;手动部署&#xff09;1. 下载Zookeeper2. 上传安装包2. 解压zookeeper安装包3. 配置zookeeper配置文件3.1 创建 zoo.cfg 配置文件3.2 修改 zoo.cfg 配置文件3.3 创建数据持久化目录并创建myid文件 4. 虚拟机hadoop2安装并…...

【机器学习】聚类算法分类与探讨

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…...

MySQL中distinct与group by之间的性能进行比较

在 MySQL 中&#xff0c;DISTINCT 和 GROUP BY 都是用于去重或汇总数据的常用 SQL 语法。尽管它们在某些情况下能产生相同的结果&#xff0c;但它们的内部工作方式和性能表现可能有所不同。理解这两者的差异&#xff0c;对于选择正确的语法非常重要&#xff0c;尤其是在处理大量…...

计算机视觉读书系列(1)——基本知识与深度学习基础

研三即将毕业&#xff0c;后续的工作可能会偏AI方向的计算机视觉方面&#xff0c;因此准备了两条线来巩固计算机视觉基础。 一个是本系列&#xff0c;阅读经典《Deep Learning for Vision System》&#xff0c;做一些总结跑一些例子&#xff0c;也对应本系列文章 二是OpenCV实…...

怎么查看navicat的数据库密码

步骤1:打开navicat连接数据库工具&#xff0c;顶部的文件栏-导出结果-勾选导出密码-导出 步骤2&#xff1a;导出结果使用NotePad或文本打开&#xff0c;找到&#xff0c;数据库对应的的Password"995E66F64A15F6776“”的值复制下来 <Connection ConnectionName"…...

webrtc前端播放器完整案例

https://download.csdn.net/download/jinhuding/89961792...

GORM优化器和索引提示

在使用 GORM 进行数据库操作时&#xff0c;优化器和索引提示可以帮助你提高查询性能。GORM 提供了一些方法来利用这些特性。 优化器提示 优化器提示&#xff08;Optimizer Hints&#xff09;是数据库系统提供的功能&#xff0c;用于指导查询优化器如何处理查询。不同的数据库…...

linux驱动-i2c子系统框架学习(1)

可以将整个 I2C 子系统用下面的框图来描述&#xff1a; 可以将上面这一 I2C 子系统划分为三个层次&#xff0c;分别为用户空间、内核空间和硬件层&#xff0c;内核空间就包括 I2C 设备驱动层、I2C 核心层和 I2C 适配器驱动层&#xff0c; 本篇主要内容就是介绍 I2C 子系统框架中…...

元戎启行嵌入式面试题及参考答案

介绍下 CAN 通信原理 控制器局域网(CAN)是一种串行通信协议,主要用于汽车、工业自动化等领域的电子控制单元(ECU)之间的通信。 其通信原理是基于多主站架构。在总线上,多个节点(设备)都可以主动发起通信。CAN 协议使用差分信号来传输数据,通过两条信号线 CAN_H 和 CAN…...

【EasyExcel】EasyExcel导出表格包含合计行、自定义样式、自适应列宽

目录 0 EasyExcel简介1 Excel导出工具类设置自定义表头样式设置自适应列宽添加合计行 2 调用导出工具类导出Excel表3 测试结果 0 EasyExcel简介 在数据处理和报表生成的过程中&#xff0c;Excel是一个非常常用的工具。特别是在Java开发中&#xff0c;EasyExcel库因其简单高效而…...

es数据同步(仅供自己参考)

数据同步的问题分析&#xff1a; 当MySQL进行增删改查的时候&#xff0c;数据库的数据有所改变&#xff0c;这个时候需要修改es中的索引库的值&#xff0c;这个时候就涉及到了数据同步的问题 解决方法&#xff1a; 1、同步方法&#xff1a; 当服务对MySQL进行增删改的时候&…...

apt镜像源制作-ubuntu22.04

# 安装必要的软件 sudo apt-get install -y apt-mirror # 编辑/etc/apt/mirror.list,添加以下内容 set base_path /var/spool/apt-mirror # 指定要镜像的Ubuntu发布和组件-null dir jammy-updates main restricted universe multiverse # 镜像的Ubuntu发布和组件的URL-n…...

libaom 源码分析: 预测编码过程梳理

AV1 预测编码中核心技术 AV1(AOMedia Video 1)作为一种开源的视频编码格式,其预测编码核心技术主要包括以下几个方面: 分区树分割模块: AV1利用多类型分割模式,递归地对图像/视频序列进行分区,以捕捉更丰富的空间信息,从而提升编码效率。这包括新的方向预测分割模式及…...

UI自动化测试--02(Xpath与CSS定位全攻略)

1.Xpath定位xpath和css定位可以利用以下元素的信息来完成定位&#xff1a; 层级结构 元素自身的所有信息 什么是Xpath&#xff1a; 是一种专门在xml文档中找元素的公式&#xff08;表达式&#xff09;&#xff0c;而HTML刚好和XML结构很类似&#xff0c;所以XPATH的表达 式也可…...

leetcode 1534. 统计好三元组 Count Good Triplets

Problem: 1534. 统计好三元组 Count Good Triplets 用变量存储数组中的值&#xff0c;防止多次访问IO Code class Solution { public:int countGoodTriplets(vector<int>& arr, int a, int b, int c) {int n arr.size(), a1, b1, c1, ans 0;for(int i 0; i <…...

智能媒体捕获:猫抓cat-catch的资源拦截与解析技术方案

智能媒体捕获&#xff1a;猫抓cat-catch的资源拦截与解析技术方案 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓cat-catch作为一款开源浏览器扩展&#xff0c;通过深度网络请求分析与流媒体协议…...

丹青幻境部署案例:高校数字艺术实验室低成本GPU算力复用方案

丹青幻境部署案例&#xff1a;高校数字艺术实验室低成本GPU算力复用方案 1. 项目背景与挑战 很多高校的数字艺术、动画设计或新媒体专业&#xff0c;都面临一个共同的难题&#xff1a;教学和创作需要强大的AI绘图能力&#xff0c;但专门采购一批高性能GPU服务器&#xff0c;预…...

Go语言中的并发模式:从WaitGroup到errgroup

Go语言中的并发模式&#xff1a;从WaitGroup到errgroup 作为一个写了十几年代码的Go后端老兵&#xff0c;我深刻体会到并发编程的重要性。Go语言以其简洁的并发模型著称&#xff0c;通过goroutine和channel&#xff0c;我们可以轻松实现高效的并发程序。今天咱们就聊聊Go语言中…...

从零学习Kafka:数据存储

下载好之后&#xff0c;进行解压并进入到对应的目录。tar -xzf kafka_2.13-4.1.1.tgz cd kafka_2.13-4.1.1接着我们执行下面两条命令进行一些必要的配置。KAFKA_CLUSTER_ID"$(bin/kafka-storage.sh random-uuid)"bin/kafka-storage.sh format --standalone -t $KAFKA…...

移动热源坐标参数

comsol激光熔覆仿真模型&#xff0c;热流耦合&#xff0c;包含马兰戈尼非等温模激光熔覆工艺仿真里有个特有意思的物理现象——熔池表面会出现类似水波纹的流动轨迹。这可不是普通的热胀冷缩&#xff0c;而是马兰戈尼效应在金属熔液里跳"物理芭蕾"。咱们今天就用COMS…...

避坑指南:解决多Livox雷达在ROS中TF树报错‘extrapolation into the past’的完整流程

避坑指南&#xff1a;解决多Livox雷达在ROS中TF树报错‘extrapolation into the past’的完整流程 当你在ROS系统中整合多个Livox雷达时&#xff0c;突然遭遇[WARN] Lookup would require extrapolation into the past的警告信息&#xff0c;Rviz中点云显示异常或TF树断裂&…...

UniHacker技术探索:Unity引擎全功能体验与开源研究指南

UniHacker技术探索&#xff1a;Unity引擎全功能体验与开源研究指南 【免费下载链接】UniHacker 为Windows、MacOS、Linux和Docker修补所有版本的Unity3D和UnityHub 项目地址: https://gitcode.com/GitHub_Trending/un/UniHacker 一、核心价值解析&#xff1a;技术研究视…...

用Python和C语言两种解法,搞定ZZULIOJ 1091‘爬楼梯’问题(附多实例测试详解)

用Python和C语言两种解法&#xff0c;搞定ZZULIOJ 1091‘爬楼梯’问题&#xff08;附多实例测试详解&#xff09; 当你第一次看到这个题目时&#xff0c;可能会觉得它只是一个简单的递归问题。但深入思考后会发现&#xff0c;这实际上是动态规划的经典案例——斐波那契数列的变…...