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

数据结构(6):图

1 图的基本概念

1.1 基本概念

1.1.1 定义【多对多的关系】

一个图不可能是空图!!!一个图的顶点集一定是非空集,但是边集可以为空集!

1.1.2 应用

1.2 无向图和有向图

弧头是有箭头的那一边,弧尾是没有箭头的那一边!!!

1.3 简单图和多重图

怎末判断是不是社交达人是不是大V?所以研究顶点有多少的相连的边是很有意义的一件事情!

1.4 顶点的度、入度、出度

入度和出度之和!!!

在无向图中:

度之和等于边个数的两倍!!!

在有向图中:

出度和入度是相等的!

1.5 顶点与顶点的关系描述

顶点和顶点之间可能不存在路径!

不重复出现是简单!

强联通!

连通图、强连通图!!
无向图不用形成回路就可以连通  但是有向图只有形成回路才是强联通了!!!

1.6 子图

生成子图!:有所有的顶点但是可能少拿的几个边!!

1.7 连通分量!!!

极大 连通 子图!

1.8 强连通子图

形成回路!!!

1.9 生成树!!【连通图】

顶点是n的树,一定有n-1条边,砍掉一条边则不连通,加上一个边必然形成回路!!!

树是:没有回路但是连通的无向图!!!!

1.10 生成森林【非连通图】

连通分量的生成树构成了生成森林!

1.11 边的权、带权图/网

带权路径之和!

1.2 几种特殊形态的图

完全

任何两个顶点都存在边!--完全

稀疏、稠密

树、有向树

有向树不连通哦!有一个顶点入度为0说明谁都达到不了哦!那肯定不连通咯

总结

2  图的存储及基本操作

2.1 邻接矩阵法

有边则对应位置为1

用二维数组存放【0,1】和一个一维数组存放顶点!

一维数组存放的顶点 对应的坐标就是矩阵的第几列!

入度出度

时间复杂度

是o(|v|) 其中|v|表示的是顶点的个数!

带权图

定义无穷时:可用int的上限定义无穷大!

有时把自己指向自己的权值记为0,也就是说当值为0或无穷是 就是没有自己指向自己的边!

空间复杂度

无向图的邻接矩阵是对称矩阵可以使用压缩存储的方法!!!

详情可见:数据结构(3)栈、队列、数组-CSDN博客

矩阵的性质:相乘

B-B 长度为2的路径一共有3条!

总结

2.2 邻接表法

用一维数组存放顶点的信息 指向顶点的第一条边!

和树的孩子表示法是一样的,指向第一个孩纸!!

先创建结点,然后初始化   【//“结点”---//用邻接表存储的图】!

时间复杂度

入度、出度

度:无向图是很简单的,只需要遍历对应的顶点后边连了几个就行

[超大缺点!!!]

入度:这个比较麻烦,所有顶点的边列表遍历一遍然后计算出所求顶点的入度!

出度:也是和无向图一样

邻接表不唯一,但是邻接矩阵一定唯一!!!!

总结

2.3 十字链表【有向图】

解决了找顶点不方便和计算入度不方便的问题!!

十字链表的画法

时间复杂度

顺着橙色的就可以找到入度,只需要顺着橙色这找卡看有几个;同理出度顺着绿色的找!!

从绿色出发找到出度:

最后一个指向null

从橙色出发找到入度:

其实整体画出来之后可以看出来,绿色数字代表画在了第几行,橙色数字代表画在了第几列,每一个方块表示的是:从绿色到橙色有一条边!

2.4 邻接多重表存储【只 无向图】

每个边对应两分冗余的数据,那么处理起来解很麻烦!

上边的数组的含义就是橙色指向绿色的边!!!

B存在在那个颜色就顺着那个颜色往后找!

边结点只有一个 删除起来就比较简单!

空间复杂度

存储方式大全总结

2.5 图的基本操作

邻接矩阵和邻接表是比较重要的,那两个太复杂考研不考!

遍历所有的边结点!E是一共有多少个边边

只需修改一行和一列的数据,然后在定义的时候给出顶点是空顶点的bool变量即可,这样可以避免大量的数据移动!!!

邻接表 删除的结点有两部分哦!!!

这个是无向图,就是说结点是冗余出现的,因此只需要 遍历与之链接的边结点 找到对应重复的哪一个边结点然后删除就好了

邻接表添加元素可以使用尾插法和头插法,省时间的是头插法!(o(1))(不用遍历!)

出边是行、入边是列!

基本操作总结

黄色的两个算法经常在图的遍历算法中使用到!

直接调用函数接口也是可以的!

3 图的遍历

3.1 图的广度优先遍历BFS

树是特殊的图!

1 234 5678横向的找

2 16 537 48

树vs图

通过一个结点找到相邻的其它结点

树实现:找孩子

图:有回路可能重复访问同一个元素!

无向图的代码实现

所以那个for循环一直到 -- 下一个没有了,返回的是-1时!!

遍历序列的可变性

邻接矩阵的表示方式一定唯一,是递增的顺序排列的!

但是邻接表就不一定了哦!

算法存在的问题:非连通图可能没遍历完,进一步完善!

复杂度分析
空间复杂度:

主要来源于辅助队列!!![不是那个标记数组!!!]就是入队出队那个进行广度优先遍历的那个!!

时间复杂度:

主要来源访问各个顶点以及探索各条边

邻接矩阵不知道那个位置是1所以要全部遍历 则是v*v

邻接表后边的就是相连的!!,所以访问 所有的顶点的预期相连的边 在无向图中 后面一共有2E条;在有向图中 一共有E个!

不要钻到代码里!的循环里 容易乱哦!

广度优先生成树

根据广度优先的顺序生成的

当邻接表的表示方式改变时,过度优先生成树可能不同

广度优先生成森林

有向图BFS代码实现

3.2 图的深度优先遍历DFS

树的深度优先遍历

图的深度优先遍历

递归函数的调用过程要用栈!进行辅助理解!

DFS代码实现:

空间复杂度

时间复杂度

深度优先手写

邻接表不一样的话结果可能也不一样

深度优先生成树

把写出深度优先序列的经过的边标红 最后没有标红的不要 然后展开!

深度优先生成森林

连通分量大于1的时候就可以生成森林了

3.3 图的遍历的图的连通性

4 图的应用

4.1 最小生成树

4.1.1 最小生成树的概念

边是n-1个这才是极小连通子图!

最小生成树题目描述

简单试一下

最小生成树概念

最小生成树可能有多个!

4.1.2 Prim算法【不要求代码!】

怎么确定是哪个顶点呢?从那个顶点好像都一样

 实现的代码思想:

没加入顶点之后 都更新lowCost数列!【检查没有加入的顶点是否和新加入的顶带你有边如果有的话,是否比原来的要小,小的话就更新数列中的值!】

时间复杂度

每一轮的处理中都需要进行两次的循环遍历,一次给isjoin,一次给lowcost;所以合起来是2n

4.1.3 Kruskal算法(克鲁斯卡尔)

找一个最小的边

实现的思想:

初始:将各条边按照权值排序

看两个顶点是否相连用到了并查集的概念!

4.1.4 Prim算法v.s. Kruskal算法

总结:

4.2 最短路径问题

常见的两种问题类型:

4.2.1 BFS算法【广度优先算法】

只适用于无权图!

d[]存储距离

path[]存储前驱结点

vistied[]表示是否被访问过

过程:

1、把初始路径长度d[]记为无穷 path[]的值置为-1

2、将出发顶点的d[]置为0

3、访问下一个顶点并作以下操作:路径长度+1;path[]更新;visited[]更新

4、弹出队列中的下一个顶点重复 visitied的过程!

最后得到两个数组:

使用:

与广度优先生成树的关系

4.2.2 Dijkstra算法

BFS的局限性

Dijkstra算法【有向或者无向图】(不要求代码)

第一轮循环:

先找到和v0直接相连中路径最短的边 纳入

然后从这个顶点出发检查路径的大小【全部】是否优于原来的 如果优于就更新

第二轮:

【从谁开始更新谁的final值就设为true】

看更新之后的dist 找到最小的那个对应的顶点 从这个出发进行新一轮的更新!

更新只需要更新Final[]值为false的!

使用数组信息

反着找!

代码【不要求】

时间复杂度

每一次都需要把dist扫一遍 长度是V

一共弄了V-1遍

所以时间复杂度是O(v^2)

对比prim算法

小坑:有负的权值的话,可能找不到最短的路径

对于v2就是不对的

4.2.3 Floyd算法

动态规划思想!

算法实现过程:

两个矩阵:是横坐标表示的到纵坐标表示的有向图!

然后一个一个顶点当中转点,知道没有点了

初始:

在v0中转

允许在v1中转

允许在v2中转

怎末看表

代码实现
时间复杂度和空间复杂度

看个更复杂的

当没有中转点时,即path[]=-1时说明两个之间没有东西,顶点才写完!

写完红色的检查 两次0-3 有无中转 【即检查path[0][3] = -1则无中转否则就是有 有的话把那个顶点加进来,两两之间再进行检查看是不是直接到达!一直到写出完整的路径信息】

path矩阵递归地找到完整路径!【代码不要求 他也没说!】
Floyd算法可以用于负权图

但也有局限性:不能解决带有“负权回路”的图

因为转的圈数越多,代价就会变得越小,所以求不出来就不存在最短路径

4.2.4 三个算法总结

BFS两个时间复杂度:v^2 是当存储方式是邻接矩阵时;另一个是狼存储方式是邻接表时

4.3 有向无环图描述表达式【没有环路!】

算数表达式可以用树存储,但会重复

干掉一个树,节省存储空间

再干掉一个

两个b还能合并 最后就变成了

很乱的过程但是有真题

真题

应该选A

写出有向无环图的 不会漏方法

不会出现重复的操作数!

操作符肯定不能重复

下面一层一层的检查 运算符是否能合并【只有当左右  相连的东西 都一样的时候才可以合并!】

练习:

但是当运算符的优先顺序进行调整的话,发现最后的结果不一样,说明得到的结果可能不唯一!!!

4.4 拓扑排序

必须式DAG图,即有向无环图!

AOV网

活动有先后顺序! 一定是有向无环图!

如果有环路的话 没完了 

拓扑排序

为了找到做事的先后顺序

拓扑排序序列的结果不唯一!

实现步骤

代码实现:

有无回路看count!

代码少了声明了两个数组:indegree[]和print[]

初始化 第一次循环

count是一个指针的作用用于记录弹出的是谁 存储再print数组中

count++先用count的值 然后再对count的值进行+1的操作!

弹出的那个顶点会从有向无环图(DAG)中删除,那么与其相连的顶带度会-1

最后当count的值是顶点的个数的时候 说明拓扑排序成果;如果不是说明有回路,拓扑排序失败!

时间复杂度

逆拓扑排序:

删除一个顶点,就要删除指向这个顶点的边:

如果采取邻接表 每次都要从头遍历!邻接矩阵只需要遍历他所在的那一列就行!

也可以采取逆存储邻接表

逆拓扑排序的DFS实现

DFS就是按照深度优先遍历的原则 将顶点一个一个压入栈中 后继无人的时候一个个弹出 直到栈为空 栈为空时检查vistied[]标记序列是否都为TRUE 如有FALSE说明还有顶点没有访问过,从这个顶点出发再次DFS 直到后继无人然后弹出栈 

如果有回路怎么办!!!!???怎末识别出来回路

如果下一个顶点是已经true的那一定有回路了 一个顶点灰了两次还得了!

总结

因此拓扑排序也适用于判断一个图里有没有环!!

4.5 关键路径

AOE网

用边表示活动!而AOV是用顶点表示活动!

AOE网的性质:

只有一个源点和汇点!

源点到汇点--就是路径 最大路径长度是关键路径!

最早时间!

最早 从前往后推,最晚从后向前推!

求所有事件的最早发生时间:

【有两条路的话就选最大的】

有拓扑排序 开始的点是0 接着往下找就可以可

拓扑序列得到可以通过DFS深度优先得到【做事的先后顺序构成了拓扑序列】

所有时间的最迟发生时间

有两条路的话就选最小的

所有活动的最早发生时间

弧尾 连接的时间的最早发生时间就是活动的最早发生时间!

所有活动的最迟发生时间

基于弧头时间的最晚发生时间 - 这个活动所需的时间就行!

所有活动的时间余量

最晚-最早   这样就可以得到那些活动一定不能拖延!

关键活动、关键路径的特性

总结!!!

相关文章:

数据结构(6):图

1 图的基本概念 1.1 基本概念 1.1.1 定义【多对多的关系】 一个图不可能是空图!!!一个图的顶点集一定是非空集,但是边集可以为空集! 1.1.2 应用 1.2 无向图和有向图 弧头是有箭头的那一边,弧尾是没有箭头…...

kaggle使用api下载数据集

背景 kaggle通过api并配置代理下载数据集datasets 步骤 获取api key 登录kaggle,点个人资料,获取到自己的api key 创建好的key会自动下载 将key放至家目录下的kaggle.json文件中 我这里是windows的administrator用户。 装包 我用了虚拟环境 pip …...

前缀表达式(波兰式)和后缀表达式(逆波兰式)的计算方式

缀是指操作符。 1. 前缀表达式(波兰式) (1)不需用括号; (2)不用考虑运算符的优先级; (3)操作符置于操作数的前面。(如 3 2 ) 1.1 中…...

智能井盖管理系统:城市窨井的井下“保镖”

随着城市化进程的加速,城市的生命线基础设施面临着越来越多的挑战。其中,旭华智能智能井盖传感器技术的发展为提升城市基础设施的安全性和管理效率提供了新的解决方案。它专门用于监控市政窨井、燃气井、供水井内的积水状况以及井盖状态,以增…...

vue3-环境变量-JavaScript-axio-基础使用-lzstring-字符串压缩-python

文章目录 1.Vue3环境变量1.1.简介1.2.全局变量的引用1.3.package.json文件 2.axio2.1.promise2.2.安装2.3.配置2.3.1.全局 axios 默认值2.3.2.响应信息格式 2.4.Axios的拦截器2.4.1.请求拦截器2.4.2.响应拦截器2.4.3.移除拦截器2.4.4.自定义实例添加拦截器 3.lz-string3.1.java…...

ubuntu下载docker依赖包

Ubuntu下载docker依赖包 ​ 公司对外客户一直偏向对安全性要求较高,因此在外部署服务得时候,安装docker是一件极为重要得事情,之前得服务器得系统是centos7。在上一家公司的时候,已经把docker所需得rpm包已经集成打包好了。并且d…...

java面向对象进阶进阶篇--《JDK8,JDK9接口中新增的方法、接口的应用、适配器设计模式》

个人主页→VON 收录专栏→java从入门到起飞 接口→接口和接口与抽象类综合案例 一、JDK8接口中新增的方法 在JDK 8中,接口新增了几个重要的特性和方法,其中最显著的是默认方法(Default Methods)和静态方法(Static Met…...

15.2 zookeeper java client

15.2 zookeeper java client 1. Zookeeper官方1.1 依赖1.2 Zookeeper客户端连接测试1.3***************************************************************************************1. Zookeeper官方 1.1 依赖 <!-- 集成方式一:官方集成zookeeper依赖 --><dependenc…...

素材管理太繁琐?有这一个就够了!

引言&#xff1a; 在创意行业中&#xff0c;素材管理一直是设计师们的痛点。从灵感的捕捉到作品的完成&#xff0c;每一步都离不开素材的积累与整理。然而&#xff0c;传统的素材管理方式往往繁琐且效率低下&#xff0c;让人头疼不已。今天&#xff0c;我要介绍的这款智能素材管…...

KubeSphere 部署向量数据库 Milvus 实战指南

作者&#xff1a;运维有术星主 Milvus 是一个为通用人工智能&#xff08;GenAI&#xff09;应用而构建的开源向量数据库。它以卓越的性能和灵活性&#xff0c;提供了一个强大的平台&#xff0c;用于存储、搜索和管理大规模的向量数据。Milvus 能够执行高速搜索&#xff0c;并以…...

前端canvas——贝塞尔曲线

曲线之美&#xff0c;不在于曲线本身&#xff0c;而在于用的人。 所以就有了这期贝塞尔曲线。 新规矩&#xff0c;先上个GIT。 效果图 开局一张图&#xff0c;代码全靠编。 代码 画骨 先想着怎么画一个心形吧&#xff0c;等你想好了&#xff0c;就知道怎么画了。 首先就还…...

Elasticsearch模糊查询之Wildcard

{“wildcard” : { “LPR.keyword” : { “wildcard” : “${Keyword}”} }},你的示例中使用了 wildcard 查询&#xff0c;它适用于模糊搜索&#xff0c;允许使用通配符&#xff08;* 和 ?&#xff09;来匹配字段值。你使用了 keyword 子字段来确保精确匹配&#xff0c;这是一…...

【人工智能】穿越科技迷雾:解锁人工智能、机器学习与深度学习的奥秘之旅

文章目录 前言一、人工智能1. 人工智能概述a.人工智能、机器学习和深度学习b.人工智能发展必备三要素c.小案例 2.人工智能发展历程a.人工智能的起源b.发展历程 3.人工智能的主要分支 二、机器学习1.机器学习工作流程a.什么是机器学习b.机器学习工作流程c.特征工程 2.机器学习算…...

Nginx服务 rewrite、proxy_pass 用rewrite去除URL中的特定参数

Nginx 是一个高性能的开源反向代理服务器&#xff0c;可以用于处理跨域请求、负载均衡和缓存等功能。在本文中&#xff0c;我们将介绍如何使用 Nginx 配置文件来实现反向代理。 我们可以实现跨域请求的处理&#xff0c;同时保护用户的隐私和安全。此外&#xff0c;Nginx 还…...

RocketMQ事务消息机制原理

RocketMQ工作流程 在RocketMQ当中&#xff0c;当消息的生产者将消息生产完成之后&#xff0c;并不会直接将生产好的消息直接投递给消费者&#xff0c;而是先将消息投递个中间的服务&#xff0c;通过这个服务来协调RocketMQ中生产者与消费者之间的消费速度。 那么生产者是如何…...

【C++】选择结构- 嵌套if语句

嵌套if语句的语法格式&#xff1a; if(条件1) { if(条件1满足后判断是否满足此条件) {条件2满足后执行的操作} else {条件2不满足执行的操作} } 下面是一个实例 #include<iostream> using namespace std;int main4() {/*提示用户输入一个高考分数&#xff0c;根据分…...

scrapy解决管道阻塞问题采用threadpool库线程池+twisted同步语法异步编程

实现方法&#xff1a;process_item和download任务函数像下面编写即可&#xff0c;其他管道像往常一样写法 import time import threadpool import random from twisted.internet import deferclass VideoPipeline:def __init__(self):self.pool threadpool.ThreadPool(10) # …...

Axure RP:打造动态交互的大屏可视化设计利器

Axure大屏可视化是指使用Axure RP这款原型设计工具来创建具有视觉冲击力和数据展示功能的大屏幕界面。Axure以其强大的交互设计和丰富的组件库&#xff0c;成为了实现大屏可视化的重要工具之一。以下是对Axure大屏可视化的详细阐述&#xff1a; 一、Axure在大屏可视化中的优势 …...

“八股文”在实际工作中是助力、阻力还是空谈

目录 1.概述 1.1.对实际工作的助力 1.2.存在的问题 2.“八股文”对招聘过程的影响 2.1.“八股文”在筛选候选人时的作用 2.2.面试中的比重及其合理性 2.3.如何平衡“八股文”与实际编程能力的考察 3.“八股文”在日常工作中的实用价值 3.1.在团队协作环境中进行有效沟…...

项目开发:@ControllerAdvice注解的基本应用

目录 简介基本用法全局异常处理全局拦截器全局数据绑定 注解参数1.value(): String[]2.basePackages(): String[]3.basePackageClasses(): Class<?>[]4.assignableTypes(): Class<?>[]5.annotations(): Class<? extends Annotation>[] 三.注解组成总结 简…...

Jmeter三种方式获取数组中多个数据并将其当做下个接口参数入参【附带JSON提取器和CSV格式化】

目录 一、传统方式-JOSN提取器获取接口返回值 1、接口调用获取返回值 2、添加JSON提取器 3、调试程序查看结果 4、添加循环控制器 5、设置count计数器 6、添加请求 7、执行请求 二、CSV参数化 1、将结果写入后置处理程序 2、设置循环处理器 3、添加CSV文件 4、设置…...

C++入门基础:C++中的循环语句

循环语句是编程语言中用来重复执行一段代码直到满足特定条件的一种控制结构。它们对于处理需要重复任务的场景非常有用&#xff0c;比如遍历数组、累加数值、重复执行某项操作直到满足条件等。 但是在使用循环语句的时候需要注意下哈&#xff0c;有时候一不小心会构成死循环或者…...

VUE 基础(二)

1 v-show:根据表达值的真假&#xff0c;切换元素的显示和隐藏 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">&l…...

VMware Cloud Foundation ESXi 主机

一、准备嵌套 ESXi 主机环境# 1)物理 ESXi 主机信息 本次准备用于部署 VCF 嵌套实验环境的物理宿主机的配置信息如下图所示。其实,部署 VCF 环境主要对内存的大小要求比较高,部署完整的管理域相关组件下来差不多就要占用 200 GB左右内存,而对 CPU 和存储的需求可以根据实…...

PyTorch深度学习快速入门(下)

PyTorch深度学习快速入门&#xff08;下&#xff09; 一、现有网络模型的使用及修改&#xff08;一&#xff09;背景知识&#xff08;二&#xff09;修改网络模型的三种方法 二、网络模型的保存与加载&#xff08;一&#xff09;保存网络模型的两种方法&#xff08;二&#xff…...

轻松入门Linux—CentOS,直接拿捏 —/— <1>

一、什么是Linux Linux是一个开源的操作系统&#xff0c;目前是市面上占有率极高的服务器操作系统&#xff0c;目前其分支有很多。是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统 Linux能运行主要的UNIX工具软件、应用程序和网络协议 Linux支持 32…...

pandas安装以及导入CSV

安装pandas pip install pandas速度慢可以切换国内镜像源 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas执行导入csv操作 import pandas as pd# 读取csv文件 data pd.read_csv(yourPath)输入data查看数据 导入成功&#xff01;...

新能源车浪潮来袭,同时存在高压低压系统,如何准确进行高低压布线间距EMC分析?

摘要 随着车辆电气化水平的逐步提升&#xff0c;电气零部件布局和布线面临着前所未有的挑战&#xff0c;在不断的压缩电气零部件间间距后&#xff0c;EMC性能成为非常关键的性能指标。特别是对于新能源车型&#xff0c;同时存在高压和低压系统&#xff0c;高低压耦合若处理的不…...

QUIC 协议

详解 QUIC 协议&#xff1a;它为何比 TCP 更优越&#xff1f;...

【软件测试】--接口测试

1. 接口用例设计 接口测试的测试点 功能测试 单接口功能&#xff1a; 手工测试中的单个业务模块&#xff0c;一般对应一个接口 登陆业务 --> 登陆接口加入购物车业务 --> 加入购物车接口订单业务 --> 订单接口支付业务 --> 支付接口 借助工具、代码。绕开前端界面…...

【前端】上传视频,截取第一帧图片

使用input上传视频&#xff0c;获得视频的第一帧 参考&#xff1a;JavaScript获取视频的尺寸信息和第一帧图片 - 掘金 (juejin.cn) html&#xff1a; <inputbind:this{uploadRef}on:change{handleUpload}accept"video/*"type"file"/>视频类型校验&a…...

Redis-GEO数据结构的基本用法

GEO就是Geolocation的简写形式&#xff0c;代表地理坐标。Redis在3.2版本中加入了对GEO的支持&#xff0c;允许存储地理坐标信息&#xff0c;帮助我们根据经纬度来检索数据。常见的命令有&#xff1a; GEOADD&#xff1a;添加一个地理空间信息&#xff0c;包含&#xff1a;经度…...

【Linux C | 网络编程】进程池大文件传输的实现详解(三)

上一篇实现了进程池的小文件传输&#xff0c;使用自定义的协议&#xff0c;数据长度数据本身&#xff0c;类似小火车的形式&#xff0c;可以很好的解决TCP“粘包”的问题。 【Linux C | 网络编程】进程池小文件传输的实现详解&#xff08;二&#xff09; 当文件的内容大小少于…...

Mac如何通过SSH连接Github

目录 前言 一、实现步骤 1.生成 SSH 密钥对 2.添加 SSH 密钥到 GitHub&#xff1a; 3.配置 SSH 连接 1.更新远程仓库 URL 2.测试 SSH 连接 前言 GitHub 在 2021 年 8 月 13 日停止了对使用密码进行身份验证的支持。因此&#xff0c;你需要使用其他认证方式&#xff0c;如…...

成就巴西休闲游戏如何借助Google谷歌广告投放优势

在探讨巴西休闲游戏如何借助谷歌广告投放优势实现市场扩张的过程中&#xff0c;我们不得不深入分析巴西市场的独特属性、休闲游戏的兴起背景&#xff0c;以及谷歌广告平台在全球范围内的强大影响力。近年来&#xff0c;随着移动游戏市场的快速发展&#xff0c;特别是中轻度休闲…...

利用python检查磁盘空间使用情况

目录 一.前言 二.使用的库介绍 三.代码实现以及解析 3.1导入模块 3.2邮件发送函数 send_email 3.3检查磁盘空间函数 check_and_clean_disk 3.4主程序逻辑 四.致谢 一.前言 在信息技术飞速发展的今天&#xff0c;数据量的激增使得磁盘空间管理成为系统运维中的一项基…...

卷积神经网络(五)---图像增强的方法

前面的部分专注于卷积神经网络的层结构介绍&#xff0c;同时还介绍了到目前为止比较出名的卷积神经网络&#xff0c;接着使用比较复杂的卷积神经网络提高了 MNIST 数据集的准确率。下面将从另外的角度——图像增强的方面入手&#xff0c;提高模型的准确率和泛化能力。 一直以来…...

矩阵常见分解算法及其在SLAM中的应用

文章目录 常见特殊矩阵定义Cholesky分解&#xff08;正定Hermittian矩阵&#xff0c;分解结果唯一&#xff09;Cholesky分解应用 SVD分解&#xff08;将singularvalues排序后分解唯一&#xff09;SVD 分解的应用&#xff08;任意矩阵&#xff09; QR分解&#xff08;任意矩阵&a…...

【排序】快速排序详解

✨✨欢迎大家来到Celia的博客✨✨ &#x1f389;&#x1f389;创作不易&#xff0c;请点赞关注&#xff0c;多多支持哦&#x1f389;&#x1f389; 所属专栏&#xff1a;排序 个人主页&#xff1a;Celias blog~ 一、快速排序的思想 快速排序的核心思想是&#xff1a; 选定一个…...

贪心算法总结(2)

一、买卖股票的最佳时机 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int maxProfit(vector<int>& prices) {int miniINT_MAX;int ret0;for(int&price:prices){//遍历的时候&#xff0c;我们随时去更新最小的值&#xff0c;然后让每一位…...

弘景光电:技术实力与创新驱动并进

在光学镜头及摄像模组产品领域&#xff0c;广东弘景光电科技股份有限公司&#xff08;以下简称“弘景光电”&#xff09;无疑是一颗耀眼的明星。自成立以来&#xff0c;弘景光电凭借其强大的研发实力、卓越的产品性能、精密的制造工艺以及严格的质量管理体系&#xff0c;在光学…...

2024年7月23日~2024年7月29日周报

目录 一、前言 二、完成情况 2.1 一种具有边缘增强特点的医学图像分割网络 2.2 融合边缘增强注意力机制和 U-Net 网络的医学图像分割 2.3 遇到的困难 三、下周计划 一、前言 上周参加了一些师兄师姐的论文讨论会议&#xff0c;并完成了初稿。 本周继续修改论文&#xff0…...

M3U8流视频数据爬虫

M3U8流视频数据爬虫 HLS技术介绍 现在大部分视频客户端都采用HTTP Live Streaming&#xff08;HLS&#xff0c;Apple为了提高流播效率开发的技术&#xff09;&#xff0c;而不是直接播放MP4等视频文件。HLS技术的特点是将流媒体切分为若干【TS片段】&#xff08;比如几秒一段…...

保护您的数字财富:模块化沙箱在源代码防泄露中的突破

在数字化浪潮中&#xff0c;企业面临着前所未有的数据安全挑战。源代码、商业机密、客户数据……这些宝贵的数字资产一旦泄露&#xff0c;后果不堪设想。SDC沙盒防泄密系统&#xff0c;以其卓越的技术实力和创新的解决方案&#xff0c;为企业提供了一个坚不可摧的安全屏障。 核…...

FFmpeg源码:avio_r8、avio_rl16、avio_rl24、avio_rl32、avio_rl64函数分析

一、引言 AVIOContext是FFmpeg&#xff08;本文演示用的FFmpeg源码版本为5.0.3&#xff09;中的字节流上下文结构体&#xff0c;用来管理输入输出数据。打开一个媒体文件的时候&#xff0c;需要先把数据从硬盘读到缓冲区&#xff0c;然后会用到AVIOContext中的如下成员&#x…...

如何使用 API 查看极狐GitLab 镜像仓库中的镜像?

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab &#xff1a;https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署…...

软件-vscode-plantUML-IDEA

文章目录 vscode基础命令 实操1. vscode实现springboot项目搭建 &#xff08;包括spring data jpa和sqlLite连接&#xff09; PlantUMLIDEA下载及安装Eval Reset插件配置修改IDEA创建项目的默认目录IDEA配置gitIDEA翻译插件translationIDEA断点调试IDEA全局搜索快捷键不能使用代…...

ES6语法详解,面试必会,通俗易懂版

目录 Set的基本使用WeakSet 使用Set 和 WeakSet 区别内存泄漏示例&#xff1a;使用普通 Set 保存 DOM 节点如何避免这个内存泄漏MapWeakMap 的使用 Set的基本使用 在ES6之前&#xff0c;我们存储数据的结构主要有两种&#xff1a;数组、对象。 在ES6中新增了另外两种数据结构&a…...

CTFshow--Web--代码审计

目录 web301 web302 web303 web304 web305 web306 web307 web308 web309 web310 web301 开始一个登录框, 下意识sql尝试一下 发现 1 的时候会到一个 checklogin.php 的路径下, 但啥也没有 好吧, 这是要审计代码的 ,下载好源码, 开始审计 看了一下源码 , 应该就是sql…...

Java语言程序设计——篇十(1)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 接口介绍 接口概述接口定义接口的实现实战演练 &#x1f445;接口的继承实战演练实战演练 接口的类型常量实战演练 静态方法默认方法解决默认方…...