自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【无标题】clientWidth、offsetWidth、scrollWidth与getBoundingClientRect

通过调用dom元素的getBoundingClientRect()方法,我们能获得一个对象,这个对象里面记录了这个元素的width、height(当然还有top、bottom等位置信息)。clientWidth、offsetWidth、scrollWidth三种属性尺寸都属于layout tree(布局树)里的尺寸,是静态的,而getBoundingClientRect()方法拿到的尺寸是属于用户最终看到的尺寸。(即元素内容区域的宽度),clientHeight表示某个元素的可见。

2024-09-07 16:09:19 601

原创 [记录]-js中的==运算符和===运算符。

js中的==与===比较规则

2024-09-05 19:47:01 437

原创 [记录]-关于js中判断某个对象中是否存在某个属性的四种方法

对于这个问题,本文给出了四种解决方法。需要注意的是,四种方法是有区别的,应用哪一种方法需要看具体的需求决定!以对象obj中是否存在属性attribute为例,如下阐述了四种方法的具体区别。

2024-09-05 18:09:23 732

原创 【车辆轨迹处理】python实现轨迹点的聚类(二)—— ST-DBSCAN算法

笔者在之前的研究中,尝试对车辆轨迹数据进行空间聚类,以期望发现车辆在行驶过程中的停留信息。在笔者之前的文章中,笔者使用了DBSCAN算法来做这一件事。然而,对于时序的车辆经纬度数据,DBSCAN有一个很大的问题——没有考虑数据中蕴含的时间信息!时间信息是时间序列数据与其他数据区别的重要特征。举个例子:在使用DBSCAN对车辆的经纬度进行聚类时,它仅仅是把那些空间相近的数据聚成一类,可是同一类中的数据可能相差很大。

2024-07-25 20:01:33 2093 1

原创 【车辆轨迹处理】python实现轨迹点的聚类(一)——DBSCAN算法

空间聚类是基于一定的相似性度量对空间大数据集进行分组的过程。空间聚类分析是一种无监督形式的机器学习。通过空间聚类可以从空间数据集中发现隐含的信息。作者在科研工作中,需要对某些车辆的轨迹数据进行一些空间聚类分析,以期望发现车辆在行驶过程中发生轨迹点”聚集“的行为。当等时间间隔的轨迹点在某片区域分布过于”密“时,我们往往可以在这片区域发现某些信息,例如车辆在这片区域发生驻留或者低速行驶等。在空间聚类算法中,DBSCAN是一种简单且有效的聚类算法,它有着基于密度不需要预先指定聚类数计算效率高的优点。

2024-07-22 18:52:16 3445 3

原创 【车辆轨迹处理】python实现轨迹数据的经纬度滤波平滑

轨迹数据大多是由GPS设备从原始的嘈杂环境中采样而来,对 GPS 轨迹数据进行平滑滤波处理的主要目的是消除或减少由于信号采集和信号传输的过程中含有的不确定性和波动,从而减少噪声影响和提高精度和可靠性。idlonlat时间车辆标识经度纬度本文提供了两种对时序经纬度的轨迹数据进行平滑滤波的python方法实现。滑动滤波器(Moving Average Filter)是一种常见的信号处理技术,用于平滑时间序列数据或信号。

2024-07-22 15:29:01 2091

原创 【python】geopandas库安装出现各种问题?可以看看这篇文章

geopandas的安装方法

2024-07-19 23:44:17 3374 6

原创 [记录]-CSS中的外边距合并问题

外边距合并:当两个块级元素的垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。只有普通文档流中块的垂直外边距才会发生外边距合并。浮动框或绝对定位之间的外边距不会合并。解决方法:当一个块元素中嵌套另一个块元素,而想让子块元素距离它的父元素有一定的上边距时,可以给它的父元素设置padding-top解决,或者给父元素设置overflow:hidden解决。...

2021-12-08 21:12:19 144

原创 [记录]-块元素、行内元素的区别与行内块元素

块级元素和行内元素的特点:(1)块级元素独占一行,行内元素在同一行显示。(2)块级元素默认宽度为100%(相对父容器),行内元素宽度默认由内容撑开。(3)会计元素可以设置宽高,行内元素设置宽高不生效。(4)块级元素可以设置margin和padding的四周,行内元素只能设置margin和padding的左右方向。行内块元素是兼具上述两者特点的元素:(1)和相邻行内元素在同一行,但是之间会有空白缝隙。(2)默认宽度是他本身内容的宽度。(3)宽度、高度、行高、margin以及pa

2021-12-04 12:13:14 397

原创 《算法笔记》读书记录DAY_64

CHAPTER_12 提高篇(6)——字符串专题12.2.3 KMP算法在理解了next数组的求解过程的基础上,正式进入KMP算法的讲解。《算法笔记》对整个KMP匹配进行了详细地阐述:可以总结出KMP算法的思路:(1)初始化j=-1,表示patten当前已匹配的最后一位。(2)让 i 遍历文本串text,对于每个 i ,执行(3)(4)。(3)不断令j=next[j],直到 j 退回-1,或是text[i]==pattern[j+1]。(4)如果text[i]=.

2021-11-20 21:31:13 213

原创 《算法笔记》读书记录DAY_62

CHAPTER_12 提高篇(6)——字符串专题12.2.1 字符串匹配问题本节主要讨论字符串匹配的问题,如果给出两个字符串text和pattern,需要判断pattern是否位text的子串。一般把text称作文本串,把pattern称作模式串。字符串匹配的暴力解法很容易想到,只需要枚举文本串的起始位置 i ,然后从该位开始逐位与模式串进行匹配,如果匹配过程中每一位都相同,则匹配成功;否则,只要出现某位不同,就让文本串的起始位置变为 i+1,并从头开始模式串的匹配。这种做法时间复杂度.

2021-11-20 18:20:39 402

原创 《算法笔记》读书记录DAY_61

CHAPTER_12 提高篇(6)——字符串专题12.1 字符串hash进阶(续上节)我们现在重新用字符串hash+二分的方法来解决11.5节中的最长回文子串的问题。题目:给出一个字符串S,字母区分大小写,求S的最大回文子串的长度输入样例:PATZJUJZTACCBCC输出样例:9 //最长回文子串为ATZJUJZTA,长度为9思路:对于一个给定的字符串str,可以先求出其字符串hash数组H1,然后再将str反转,求出反转字符串...

2021-11-18 16:05:51 100

原创 《算法笔记》读书记录DAY_60

CHAPTER_12 提高篇(6)——字符串专题12.1 字符串hash进阶(1)在4.2节中我们层曾提到字符串hash,字符串hash是指将一个字符串S映射为一个整数。在之前的介绍中,我们将一个n位字符串看作一个n位26进制数,即字母a~z代表0~25,然后使用进制转换的方式将其转换成p进制数(一般是十进制)完成映射。然而这种方式不适用于长度较大的字符串,因为转换出的整数也会很大,为了应对这种情况,我们只能舍弃一些"唯一性",即对一个转换得到的整数mod取模。这样成功使整数变小,...

2021-11-17 20:03:07 582

原创 《算法笔记》读书记录DAY_59

CHAPTER_11 提高篇(5)——动态规划11.7.3 完全背包问题完全背包问题叙述如下:有n种物品,每种物品的单件重量为w[i],价值为c[i]。现有一个容量为V的背包,问如何选取物品放入背包,使得背包内物品的总价值最大。其中每种物品有无数件。其中所有数据都为正整数。可以看出,完全背包和01背包问题的唯一区别在于每种物品的数量有无数件。因此我们的动态规划策略也要做出一些改变。令dp[i][v]表示前 i 件物品恰好放入容量为v的背包中能获得的最大价值。对每种物品,同样有两.

2021-11-16 22:34:43 92

原创 《算法笔记》读书记录DAY_58

CHAPTER_11 提高篇(5)——动态规划11.7.1 多阶段动态规划问题有一类动态规划可解的问题,它可以描述成若干个有序的阶段,且每个阶段的状态只和上个阶段有关,一般把这类问题称为多阶段动态规划问题。01背包问题就是个典型的多阶段动态规划问题。11.7.2 01背包问题我们来看01背包问题。题目:有n件物品,每件物品的重量为w[i],价值为c[i]。现有一个容量为V的背包,问如何选取物品放入背包,使得背包内物品的总价值最大。其中每种物品只有1件。输入样例:..

2021-11-15 20:54:56 600

原创 《算法笔记》读书记录DAY_57

CHAPTER_11 提高篇(5)——动态规划11.6DAG最长路径在10.6.1节已经介绍过,DAG就是有向无环图,并且在10.7.3节中已经讨论如何求解DAG中的最长路径,也就是“关键路径”的求法。这里介绍利用动态规划来求DAG最大路径的做法。本节着重解决两个问题:(1)求解整个DAG中的最长路径(即不固定起点和终点)。(2)固定终点,求DAG的最长路径。先讨论第一个问题:给定一个有向无环图,怎样求解整个图中的所有路径权值之和最大的那一条。...

2021-11-14 13:30:05 1251

原创 《算法笔记》读书记录DAY_56

CHAPTER_11 提高篇(5)——动态规划11.5最长回文子串回文串是一个正读和反读都一样的字符串,即是一个左右对称的串。下面来看最长回文子串的问题。题目:给出一个字符串S,字母区分大小写,求S的最大回文子串的长度。输入样例:PATZJUJZTACCBCC输出样例:9 //最长回文子串为ATZJUJZTA,长度为9思路:如果采用暴力的揭发,枚举左右端点,然后判断区间[ i , j ]内的子串是否回文。这么做的时间复杂度为O...

2021-11-12 21:17:43 466

原创 《算法笔记》读书记录DAY_55

CHAPTER_11 提高篇(5)——动态规划11.4最长公共子序列(LCS)我们来看最长公共子序列(LCS)问题。题目:给定两个字符串(或数字序列)A和B,求一个字符串,使得这个字符串是A和B的最长公共部分。例如:字符串“sadstory”与"adminsorry"的最长公共子序列为"adsory",长度为6。输入样例:sadstoryadminsorry输出样例:6思路:我们采用动态规划的做法来解LCS问题。令dp[i][j]表示字符.

2021-11-11 19:40:13 240

原创 [记录]-关于行内元素在浮动后可以设置宽高的思考

平时经常给<a><span>这样的行内元素设置浮动float:left or float:right,浮动了之后还可以给它们设置高度啊宽度啊。这点大家都知道,但是为什么呢?为什么行内元素在浮动之后就可以设置高宽了呢。 引用下曹刘阳写的《编写高质量代码-Web前端开发修炼之道》一书中看到的一句话:position:absolute和float会隐式地改变display类型,不论之前什么类型的元素(display:none除外),只要设置了position:absolute 、 f

2021-11-10 23:21:26 944

原创 《算法笔记》读书记录DAY_54

CHAPTER_11 提高篇(5)——动态规划11.2最大连续子序列和

2021-11-10 17:11:57 230

原创 《算法笔记》读书记录DAY_53

CHAPTER_11 提高篇(5)——动态规划11.1.1动态规划动态规划(DP)是一种用来解决一类最优化问题的算法思想。简单来说,动态规划将一个复杂的问题分解成若干个子问题,通过综合子问题的最优解来得到原问题的最优解。需要注意的是,动态规划会把每个求解过的子问题的解记录下来,这样当下一次碰到同样的子问题时,就可以使用之前记录的结果,而不用重复计算。一般可以使用递归或者递推的写法来实现动态规划,其中递归写法在此处又称作记忆化搜索。11.1.2动态规划的递归写法通过学习DP..

2021-11-09 20:21:14 349

原创 《算法笔记》读书记录DAY_52

CHAPTER_10 提高篇(4)——图算法专题10.7.3关键路径由于AOE网实际上是有向无环图,而关键路径是图中的最长路径,因此本节实际上给出了一种求解有向无环图中最长路径的方法。由于关键活动是哪些不允许拖延的活动,因此这些活动的最早开始时间必须等于最迟开始时间。因此设置数组e[r]和l[r]分别表示分别表示活动ar的最早开始时间和最迟开始时间。于是,当求出这两个数组之后,就可以通过判断e[r]==l[r]是否成立来确定r是否为关键活动。如上图所示,事件Vi在经过活动ar之.

2021-11-08 20:51:22 227

原创 《算法笔记》读书记录DAY_51

CHAPTER_10 提高篇(4)——图算法专题10.7.1AOV网和AOE网顶点活动网(AOV)是指用顶点表示活动,而用边集表示活动间优先关系的有向图。若网中所有活动均可以排出先后顺序(任两个活动之间均确定先后顺序),则称网是拓扑有序的,求拓扑序列就是求AOV。边活动网(AOE)是指用带权的边集表示活动,而用顶点表示事件的有向图。例如下图,边a1-a6表示需要学习的课程,也就是“活动”;边权表示课程学习需要消耗的时间;顶点V1-V6表示到此刻为止前面的课程已经学完,后面的课程已经可以.

2021-11-07 18:31:14 193

原创 《算法笔记》读书记录DAY_50

CHAPTER_10 提高篇(4)——图算法专题10.6.1有向无环图如果一个有向图的任意顶点都无法通过一些有向边回到自身,那么称这个有向图为有向无环图(DAG)。如下给出几个DAG的例子:10.6.2拓扑排序拓扑排序是将有向无环图G的所有顶点排出一个线性序列,使得对图G中的任意两个顶点u和v,如果存在边u->v,那么在序列中u一定能在v的前面。这个序列又被称为拓扑序列。如下图,给出有向图(a),拓扑排序为acbfde。可以看出,这个序列完全符合拓扑排序的定义。.

2021-11-06 19:43:32 102

原创 《算法笔记》读书记录DAY_49

CHAPTER_10 提高篇(4)——图算法专题10.4.4Floyd算法Floyd算法(弗洛伊德算法)用来解决全源最短路径问题,即对于给定的图G(V,E),求任意两点u,v之间的最短路径长度,时间复杂度是O(n^3)。由于n^3的时间复杂度很高,因此顶点数n基本被限制在200以内,因此使用邻接矩阵实现Floyd算法非常合适。Floyd算法基于这样一个事实:如果存在顶点 k ,使得以k作为中介点时顶点 i 和顶点 j 的当前最短路径距离缩短,则使用顶点 k 作为顶点 i 和顶点 j ..

2021-11-05 19:32:16 78

原创 《算法笔记》读书记录DAY_48

CHAPTER_10 提高篇(4)——图算法专题10.4.3Bellman-Ford算法和SPFA算法前面已经提到,Dijkstra算法无法解决边权为负值的情况。而Bellman-Ford算法同样可以解决单源最短路径问题,也能处理有负边权的情况。现在考虑有向图中的环,也就是从某个顶点出发、经过若干个不同的顶点之后可以回到该顶点的情况。而根据环中边的边权之和的正负,可将环分为零环、正环、负环(如下图所示)。图中零环和正环不会影响最短路径的求解,因为零环和正环不能使最短路径更短。而如...

2021-11-04 18:55:04 97

原创 《算法笔记》读书记录DAY_47

CHAPTER_10 提高篇(4)——图算法专题10.4.2Dijkstra算法(接上篇)下面通过一道例题来练习Dijkstra+DFS模板的运用。题目:有N个城市(编号为0-N-1)、M条道路(无向边),每条道路连接两个不同的城市,并给出M条道路的距离属性与花费属性。现在给定起点S与终点D,求从起点到终点的最短路径、最短距离及花费。注意:如果有多条最短路径,则选择花费最小的那条。输入格式:每个输入包含一个测试用例。对于每个测试用例,第一行给出四个整数:城市个...

2021-11-03 16:15:31 136

原创 《算法笔记》读书记录DAY_46

CHAPTER_10 提高篇(4)——图算法专题10.4.2Dijkstra算法(接上篇)上面的题目实际是一个多标尺的最短路径问题。何为多标尺?即题目给出了多个衡量标准,为了输出最终结果,我们不但要考虑道路的距离(第一标尺),还需要考虑每个点的点权(第二标尺)和最短路径的数量(第三标尺)。这种情况我们必须对Dijkstra算法做一些改动才能将其他标尺考虑进来,正如上题所做的处理,我们设置数组weight[]和num[]来记录其他标尺的量,并在更新d[]的值的时候用判断条件来更新这些...

2021-11-02 11:28:44 187

原创 《算法笔记》读书记录DAY_45

CHAPTER_10 提高篇(4)——图算法专题10.4.2Dijkstra算法(接上篇)下面通过两道例题,练习Dijkstra算法的运用。题目1:给出N个城市(城市用0,1,...,N-1编号),M条无向边,每条边代表连接两个城市的道路,边的权值代表其距离。每个城市中都有一定数目的救援小组,所有边的边权已知。现在给出起点和终点,求从起点到终点的最短路径条数及最短路径上的救援小组数目之和。输入格式:每个输入包含一个测试用例。对于每个测试用例,第一行给出4个正整数:...

2021-11-01 23:03:52 243

原创 《算法笔记》读书记录DAY_44

CHAPTER_10 提高篇(4)——图算法专题10.4.1最短路径最短路径是图论中一个很经典的问题:给定图G(V,E),求一条从起点到终点的路径,使得这条路径上经过的所有边的边权之和最小。如下图所示,在从V0到V6的路径中,V0—V1—V4—V6的路径的边权之和等于3,达到最小,因此这条路径称为V0—V6的最短路径。对给定任意的图G(V,E)和起点S、终点T,求其最短路径的常用算法有:Dijkstra、Bellman-Ford、SPFA和Floyd。10.4.2Dij.

2021-10-31 22:14:52 292

原创 《算法笔记》读书记录DAY_43

CHAPTER_10 提高篇(4)——图算法专题10.3.2图的遍历—BFS用BFS遍历图,总是以“广度”作为第一关键词,每次以扩散的方式向外访问顶点。和树的BFS一样,使用BFS遍历图需要使用一个队列,通过反复取出队首顶点,将该顶点可到达的未曾加入过队列的顶点全部入队,直到队列为空时遍历结束。我们从A开始,用BFS遍历上面这个有向图,在初始时先要将A入队。当前队列内元素为{0},取出队首元素0,访问该顶点,然后将0出队。然后将所有从A出发能到达并且还未入队的顶点都入队,即B...

2021-10-30 20:23:39 107

原创 《算法笔记》读书记录DAY_42

CHAPTER_10 提高篇(4)——图算法专题10.3.1图的遍历—DFS图的遍历是指对图的所有顶点按一定顺序进行访问。用DFS遍历图,总是以“深度”作为第一关键词,每次都是沿着路径到不能再前进时才退回到最近的岔道口。也就是沿着一条路径直到无法继续前进,才退回到路径上离当前顶点最近的还存在为访问分支顶点的岔道口,并前往访问那些未访问的分支顶点。例如上面这个例子,沿着V1、V2、V4、V8、V5走至最深,这时候已经无法继续前进了,这个时候回退到最近的V1分岔口,因为V1还有未访问的.

2021-10-30 17:33:48 207

原创 [记录]-CSS中的定位-子绝父相

初学者在学习CSS中定位的使用时,往往遵循子绝父相的原则。这样的设置用于我们需要让某个子元素相对父元素进行绝对定位布局。例如:<style> .header { position: relative; height: 105px; background-color: pink; } .logo { position: absolute; top: 25px; left:

2021-10-28 17:30:01 672

原创 《算法笔记》读书记录DAY_41

CHAPTER_10 提高篇(4)——图算法专题10.1图的定义和相关术语图(Graph)是由顶点和连接顶点的边构成的离散结构。在计算机科学中,图是最灵活的数据结构之一,很多问题都可以使用图模型进行建模求解。图的结构很简单,就是由顶点V集和边E集构成,因此图可以表示成。一般来说,图可以分为有向图和无向图。有向图是所有边都有方向,即确定了一个顶点到另一个顶点的指向;而无向图的所有边都是双向的,即无向图的所有边都是双向的。 ...

2021-10-28 11:10:47 151

原创 [记录]-DIV内文字的居中

DIV中的文字水平居中显示要使盒子内的文字水平居中,最常规的方法是对该div的文字套上span标签,然后设置margin属性:上下固定、左右自适应。(需要注意的是,span是行内元素,只能设置margin的左右方向,上下方向是不生效的)<style> .w { width: 1200px; } .w span { margin:0 auto; }</style><body> <

2021-10-27 22:35:09 521

原创 《算法笔记》读书记录DAY_40

CHAPTER_9 提高篇(3)——数据结构(2)9.8.1哈夫曼树首先来明确两个定义。对于一棵树,我们把叶子节点的权值乘以其路径长度的结果称为这个叶子节点的带权路径长度。例如下图中,叶子节点G的带权路径长度为 3 * 2 = 6 。树的带权路径长度(WPL)等于它所有叶子节点得到带权路径长度之和。对于下面这棵树,其WPL等于3 * 2 + 5 * 2 + 13 * 1 = 29 。我们有如下问题:已知n个数,寻找一棵树,使得树的所有叶子节点的权值为这n个数,并且使得这棵树的带...

2021-10-27 17:48:47 235

原创 《算法笔记》读书记录DAY_39

CHAPTER_9 提高篇(3)——数据结构(2)9.7.1堆的定义与基本操作堆是一颗完全二叉树,树中每个节点的值都不小于(或不大于)其左右孩子节点的值。其中,如果父亲节点的值大于或等于孩子节点的值,这样的堆称为大顶堆。如果父亲节点的值小于或等于孩子节点的值,这样的堆称为小顶堆。堆一般用于优先队列的实现,而优先队列默认情况下使用的是大顶堆。通过上图两个堆的示例可以看到,堆是既有完全二叉树的特性,也有属于自己的特性:(1)第i个分支节点的子节点的序号总是 2 * i + ...

2021-10-26 17:59:22 106

转载 [转载]-CSS清除浮动:clearfix:after

.clearfix:after { visibility: hidden; clear: both; display: block; content: "."; height: 0}.clearfix { *zoom: 1}解释:在写HTML代码的时候,发现在Firefox等符合W3C标准的浏览器中,如果有一个DIV作为外部容器,内部的DIV如果设置了float样式,则外部的容器DIV因为内部没有clear,导致不能被撑开。这个clearf.

2021-10-25 21:52:55 203

原创 《算法笔记》读书记录DAY_38

CHAPTER_9 提高篇(3)——数据结构(2)9.6.1并查集的定义并查集是一种维护集合的数据结构。并查集支持下面两个操作:(1)合并:合并两个集合。(2)查找:判断两个元素是否在一个集合。那么并查集是用什么实现的呢?其实就是用一个数组:int father[N];其中father[i]表示元素i的父亲节点,而父亲节点本身也是这个集合内的元素。另外对于father[i]==i,则说明元素i是这个集合的根节点,但对同一个集合来说只存在一个根节点,并将它视作所属集...

2021-10-25 15:24:04 108

原创 《算法笔记》读书记录DAY_37

CHAPTER_9 提高篇(3)——数据结构(2)9.5.1平衡二叉树(AVL)的定义

2021-10-24 18:09:45 96

空空如也

空空如也

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

TA关注的人

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