自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 最短路径:用最通俗的话讲述Dijkstra算法

Dijkstra算法主要思路:找到源点,找到离源点最近的点,然后根据该最近的点去更新其他离源点的距离(因为其他点可能通过该点中转)。然后离源点的次近点,找到次近点之后,再根据该次近点去更新其他点到源点的距离,以此类推,找到离源点第n近的点,然后去更新 其他可能通过该点中转后离源点更近的点 离源点的距离。数据结构:dis []int:各个点离源点的最短距离v []int:各个点是否访问过步骤:初始化:找到源点src,计算所有点距离src的距离,生成数组dis;以及初始化访问数据v,src

2020-09-17 11:23:11 290

原创 最小生成数之KrusKal算法,浅显易懂

KrusKal算法的主要思路:与Prim算法不同的是,Prim算法是以顶点作为单元来进行考虑,而KrusKal是以边为单位进行考虑。将邻接矩阵中的所有数据解析成<m,n,l>的结构(这里称为点边式),其中m和n分别为两个顶点,l为两顶点的权值。将所有点边式按权值大小从小到大依次排序。然后遍历所有的点边式,并做如下判断:如果该点边式的两点m、n同源(说明m和n属于同一棵树),跳过如果该点边式的两点不同源,则合并(合并方法比较随便,将n的根设为m的根即可)至于什么是同源,即两个顶点属

2020-09-16 16:54:03 362

原创 最小生成树之Prim算法,浅显易懂

Prim算法主要思路:抽象(假想:假设存在,但不存在)出两个集合,V 和Vnew最开始,所以的图节点都在集合V中如果一个节点加入到了最小生成树中,则将该节点加入到Vnew(即Vnew保存的是最小生成树中的节点)说明: Vnew即最小生成树Prim算法主要维护三个数组lowcost []int,表示V中的节点,离Vnew中所有节点的最短距离。如果节点已经加入到了Vnew中,则置为-1latest []int,表示V中的节点,离Vnew中最近的节点的序号,如果节点已经加入到了Vn

2020-09-16 12:58:50 338

原创 完美解决 deepin系统无法安装mysql

deepin 20下安装mysql在deepin系统中一般是使用默认的官方apt源,但是官方的源无法安装mysql-server。自己折腾了所以最好的办法是切换掉官方的源,使用其他的源来安装。deepin 20 beta1.替换源需要修改文件夹etc/apt中的souces.list文件。以防万一,可以先将该文件备份到其他地方。//可以先切换到/etc/apt目录下cd /etc/apt//拷贝sources.list文件 cp -r 源文件 目的地cp -r sources.list

2020-07-20 19:55:31 2116

转载 golang GMP调度原理

GMP原理与调度一、原理解析go语言的协程线程分为“内核态”线程和“用户态”线程,一个“用户态“线程必须要绑定到内核态线程。在Go里面,更加细分。”内核态“线程叫线程(thread),”用户态“线程叫协程(co-routine)goroutine来自协程的概念。让一组可复用的函数运行在一组线程之上,即使有协程阻塞,该线程的其他协程也可以被runtime调度,转移到其他可运行的线程上Goroutine的特点:占用内存小(几KB)调度灵活(runtime调度)定义全局队列:存放等待运

2020-07-16 16:29:24 1978

转载 golang channel源码解析

go channel源码分析不要通过共享内存来通信,而要通过通信来实现内存共享。一、通道是什么?通道是可以让一个goroutine发送特定值到另一个goroutine的通信机制无缓冲通道:也称同步通道,无缓冲通道上的发送操作将会阻塞,直到另一个goroutine在对应的通道上执行接收操作,此时传送完成,两个goroutine才能继续执行。反之亦然。缓冲通道:缓冲队列有一个缓冲队列,队列的最大长度在创建的时候通过make的容量参数来设置。缓冲通道上的发送操作在队列的尾部插入一个元

2020-07-16 16:26:12 588

原创 字符串解码:清晰易懂的递归

题目LeetCode 394题 : 字符串解码写在前面看到题第一眼本来是想用简单for循环来做,当看到第二个案例,中括号可以嵌套,那么for循环毙掉。看到嵌套括号,第一个想法用栈和递归均可解。长时间没使用递归了,那就复习一下递归。思路其实可以采用分治的思想,解析外层括号之前,先解析内层括号。当我们碰到左括号“[”时,先解析该括号中的字符串;假如该字符串中存在左括号“[”,当碰到左括号"["时,重复上一步骤;假如该字符串中不存在“[”了,那么下一个碰到的一定是右括号“]”,当碰到右括号“]

2020-05-30 09:48:15 346

原创 双端队列实现 :栈、链表、数组多解法

写在前面每当看到类似的题目,脑海中的第一想法就会是用栈或者队列来实现。解法一:双栈使用栈来实现双端队列需要使用两个栈,因为一个栈无法实现两端插入和删除,并且需要将两端固定。如栈1用来充当队列头,栈2用来充当队列尾。这样,使用栈来实现需要注意以下几点:在取元素时,如果该栈为空,但是另外的栈可能不为空,所以需要将另外一个栈中的数据拷贝过来;例如,当从头部栈中取元素时,如果头部栈为空但是尾部栈不为空,则需要从尾部栈中读取。从尾部栈取元素亦然。在删除元素时,如果该栈为空,但是另外的栈可能不为空,所以

2020-05-30 09:43:56 348

转载 使用Openlayers叠加天地图

Tianditu:天地图BaiduMap: 百度地图什么是Openlayers?openlayers是一个专为Web Gis客户端开发提供的javascript包。OpenLayers 支持的地图包括Google Maps、Yahoo、 Baidu、天地图、微软Virtual Earth 等等,可以说是功能非常之强大。Openlayers支持调用远程服务器地图(以OGC形式发布的地图)到本地的客户端浏览器中进行显示。OpenLayers 除了可以在浏览器中帮助开发者实现地图浏览的基本效果,比如放大

2020-05-25 15:29:00 1904

原创 java odbc 实现access连接并导出mdb格式文件

文章目录一、前言二、概述三、具体实现1、access数据库连接2、代码一、前言二、概述最近应项目要求,需要将项目数据导出成.mdb格式文件,而.mdb格式文件本身是access数据库文件。所以问题变成从 系统数据库(postgreSQL)中读取数据,然后将数据写入到.mdb文件中。环境:|配置|版本|| 系统 | win10 || access ...

2020-05-25 09:47:26 1353

原创 java使用POI导出word数据以及生成word表格

暑期在杭州实习了两个月,主要是使用vue+SpringMVC进行一个网页开发。而在开发的过程中,也遇到了比较常见的文件导出问题–以固定格式将数据存储在word、excel等office文件格式中。在网上搜索了许多方法,了解到要导出word文件,其实办法由很多,如jacob,java2word,FreeMarker,Apatch POI等等。本文采用的是Apatch POI中的一系列API,它...

2019-09-07 23:51:21 15261 13

原创 word自动添加标题以及批量生成图片题注

问题阐述项目做完之后,需要完成一篇软件使用说明,为了尽可能让用户方便的使用软件,那么说明文档定要清晰简单。但是写了很久,发现格式仍然很乱,由于图片较多,如果一张一张添加题注的话,那么工作量非常巨大,所以百度学习了一些word的使用技巧,唉,word真是一门技术啊。这篇博客详细说明了:如何自动添加标题,一级在某一章中批量生成图片题注方法要根据章节号来自动生成图或表的题注,需要重新定义多级列表...

2019-06-17 18:38:40 16344

原创 android 手动实现可输入下拉框Spinner控件(工具类)

一、前言一丝感想一直想着多写几篇博客,一个为了提升自己,也是给需要的人提供帮助。可惜,项目太近,琐事太多,实在闲不下来,唉。不管怎样,还是想抽点时间出来完成这篇博客!进入正题android 是自带有下拉框spinner控件的,但是android原生的Spinner控件是不支持用户输入的(据我所知),仅仅支持在数据列表确定的情况下进行选择。所以要实现一个手动输入的下拉框,我们需要自己手动实现...

2019-05-21 22:56:58 11572 20

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除