自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(310)
  • 资源 (1)
  • 收藏
  • 关注

原创 ffprobe -show_packets和-show_frames之间的区别

我们只查看视频的packets结果如下:可以看到,视频流的pts和dts并不同步,说明有B帧,dts递增,pts因为有B帧的原因所以非递增。所以,当使用show_packets分析视频流时,其实分析的是帧 frame,这里无论I帧,P帧还是B帧都还没有被解码。

2023-07-31 15:50:16 857

转载 linux下生成https证书

linux下生成https证书。

2023-07-25 14:32:59 4800

转载 bash和sh的区别

Shell 中文意思贝壳,寓意类似内核的壳。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 脚本(shell script)是一种为 shell 编写的脚本程序。常说的shell通常都是指 shell 脚本,但shell和shell script是两个不同的概念。

2023-07-03 21:32:41 695

原创 g++: internal compiler error: Killed (program cc1plus)

编译时一直报错 "g++: internal compiler error: Killed (program cc1plus)"原因,服务器交换空间不足,即swap,可用top命令查看。

2023-06-15 15:09:21 1106

转载 docker将容器打包成镜像,并在另一个服务器上运行

我们项目中,在本地服务器中部署了docker开启了一个服务,现在测试环境服务器也需要这个服务,因为懒得重新配置,于是将本地服务器中的容器进行打包,保存为tar文件,传输到测试服务器中,使用load加载镜像,然后运行。

2023-05-31 19:48:28 1391

原创 centos升级gcc

升级前可先把旧的gcc卸载(其实不卸载也行)

2023-05-24 16:06:25 249

原创 centos安装cgdb

的cgdb,不然会报错“cgdb requires gdb 7.12 or later”。其他:编译时指定c99编译器。

2023-05-09 15:25:08 980 1

原创 bzip2 : Depends: libbz2-1.0 (= 1.0.6-9.2~deb10u2) but 1.0.8-4 is to be installed

具体来说,bzip2软件包需要依赖于特定版本的libbz2-1.0软件包,而当前系统安装的libbz2-1.0软件包版本与bzip2软件包需要的版本不匹配。解决办法:降级软件包,如果更新后仍然无法解决问题,可以尝试降级libbz2-1.0软件包的版本,使其与bzip2软件包需要的版本匹配。该命令会安装指定版本的libbz2-1.0软件包,并替换当前安装的版本。

2023-05-06 17:06:29 2696

转载 视频编码格式发展史

一个视频标准的普及其实是商业利益博弈的结果。要看能否成为标准或者普及有时候要看对手是怎么样的。

2023-04-07 10:14:42 8052

原创 mac下利用iterm2快速登陆docker(容器)

mac下利用iterm2快速登陆docker

2022-12-27 16:58:06 720

原创 HTTP 长连接和 TCP 长连接有什么区别

HTTP 长连接和 TCP 长连接有什么区别

2022-12-04 20:54:57 1286

转载 NAT,NAPT,STUN详解

NAT,NAPT,STUN详解

2022-12-03 21:17:53 1505

原创 电脑的的load是什么意思?

服务器的load是什么意思?

2022-11-06 20:51:31 2275

原创 http请求头中的host是什么意思

Host 是 HTTP 1.1 协议中新增的一个请求头,主要用来实现虚拟主机技术。

2022-10-14 19:52:33 7682

原创 什么是VIP(Virtual IP Address)

VIP的实现原理

2022-10-14 15:06:47 7384

原创 docker启动报错 bind: An attempt was made to access a socket in a way forbidden by its access permissions

docker启动报错bind: An attempt was made to access a socket in a way forbidden by its access permissions的解决方法。

2022-09-30 10:04:06 2106 4

原创 什么是线段树

线段树的概念线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区间的长度。线段树的应用线段树 segmentTree 是一个二叉树,每个结点保存数组 nums 在区间 [left, right] 的最...

2022-04-04 16:59:13 1885

原创 什么是树状数组

首先我们搞明白树状数组是用来干嘛的,现在有一个这样的问题:有一个数组a,下标从0到n-1,现在给你w次修改,q次查询,修改的话是修改数组中某一个元素的值;查询的话是查询数组中任意一个区间 [left,right] 的和。这个问题很常见首先分析下朴素做法的时间复杂度,修改是O (1) 的时间复杂度,而查询的话是O(n)的复杂度,总体时间复杂度为 O(qn); 可能你会想到前缀和来优化这个查询,我们也来分析下,查询的话是O(1)的复杂度,而修改的时候修改一个点,那么在之...

2022-04-04 16:58:41 936

原创 年龄表

垂髫是三四岁至八九岁的儿童。总角是八九岁至十三四岁的少年。豆蔻是十三四岁的女孩子。束发是男子十五岁。弱冠是男子二十岁。而立是三十岁。不惑是四十岁。知命是五十岁。花甲是六十岁。古稀是七十岁。耄耋是八九十岁。期颐是一百岁。...

2022-03-25 19:11:40 409

原创 七、最短路径——弗洛伊德(Floyd)算法

为了能讲明白弗洛伊德(Floyd)算法的精妙所在,我们先来看最简单的案例。下图是一个最简单的3个顶点连通网图。我们先定义两个二维数组D[3][3]和P[3][3],D代表顶点到顶点的最短路径权值和的矩阵。P代表对应顶点的最小路径的前驱矩阵。在未分析任何顶点之前,我们将D命名为,其实它就是初始的图的邻接矩阵。将P命名为,初始化为图中所示的矩阵。 首先我们来分析,所有的顶点经过v0后到达另一顶点的最短路径。因为只有...

2022-03-23 12:11:36 23074 4

原创 六、最短路径——迪杰斯特拉(Dijkstra)算法

在网图和非网图中,最短路径的含义是不同的。由于非网图它没有边上的权值,所谓的最短路径,其实就是指两顶点之间经过的边数最少的路径;而对于网图来说,最短路径,是指两顶点之间经过的边上权值之和最少的路径,并且我们称路径上的第一个顶点是源点,最后一个顶点是终点。显然,我们研究网图更有实际意义,就地图来说,距离就是两顶点间的权值之和。而非网图完全可以理解为所有的边的权值都为1的网。迪杰斯特拉是一个按路径长度递增的次序产生最短路径的算法。它的思路大体是这样的。比如...

2022-03-22 16:42:13 12757 1

原创 五、最小生成树——克鲁斯卡尔(Kruskal)算法

现在我们来换一种思考方式,普里姆(Prim)算法是以某顶点为起点,逐步找各顶点上最小权值的边来构建最小生成树的。这就像是我们如果去参观某个展会,例如世博会,你从一个入口进去,然后找你所在位置周边的场馆中你最感兴趣的场馆观光,看完后再用同样的办法看下一个。可我们为什么不事先计划好,进园后直接到你最想去的场馆观看呢?同样的思路,我们也可以直接就以边为目标去构建,因为权值是在边上,直接去找最小权值的边来构建生成树也是很自然的想法,只不过构建时要考虑是否会形成环路而已。此时我们就...

2022-03-22 10:44:02 5198

原创 四、最小生成树——普里姆(Prim)算法

一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边,那么我们把构造连通图网的最小代价生成树称为最小生成树(就是n个顶点,用n-1条边全部连接起来,并且使得权值的和最小)。现在有如下一个图,以及它的邻接矩阵:我们用下面的算法来寻找最小生成树#include<iostream>#include<vector>#include<queue>using namespace std;#def...

2022-03-20 23:17:14 969

原创 三、图的遍历——广度优先遍历

广度优先遍历,又称为广度优先搜索,简称BFS。如果说图的深度优先遍历类似树的前序遍历,那么图的广度优先遍历就类似于树的层序遍历了。邻接矩阵方式的广度优先遍历#include<iostream>#include<vector>#include<queue>using namespace std;#define MAXVEX 100//最大顶点数typedef char VertexType;//顶点类型typedef int EdgeType

2022-03-20 13:58:13 4812

原创 二、图的遍历——深度优先遍历

深度优先遍历,也有称为深度优先搜索,简称为DFS。深度优先遍历其实就是一个递归的过程,它从图中某个顶点ⅴ出发,访问此顶点,然后从V的未被访问的邻接点出发深度优先遍历图,直至图中所有和V有路径相通的顶点都被访问到。邻接矩阵方式的深度优先遍历#include<iostream>#include<vector>using namespace std;#define MAXVEX 100//最大顶点数typedef char Ver...

2022-03-20 12:49:22 7067 1

原创 一、图的定义,邻接矩阵和邻接表的实现

目录一、初识图(1)图的定义(2)图的分类二、图的存储结构(1)邻接矩阵(2)邻接表(无向图)(3)其他一、初识图(1)图的定义图(Graph)是由顶点的有穷非空集合(必须存在顶点)和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。(2)图的分类若顶点到顶点之间的边设有方向,则称这条边为无向边。如果图中任意两个顶点之间的边都是无向边,则称该图为无向图。...

2022-03-20 10:40:09 4937

原创 http1,http2和http3之间的区别

HTTP1.1 和 HTTP1.0 的区别有哪些? 1.长链接 早期 HTTP1.0 的每一次请求都伴随着一次三次握手的过程,并且是串行的请求,增加了不必要的性能开销 HTTP1.1新增了长链接的通讯方式,减少了性能损耗 2.管道 HTTP1.0 只有串行发送,没有管道 HTTP1.1 增加了管道的概念,使得在同一个 TCP 链接当中可以同时发出多个请求 3.断点续传 HTTP1.0不支持断点续传 ..

2022-03-18 13:26:32 3111

原创 数字签名和数字证书的区别

鲍勃有两把钥匙,一把是公钥,另一把是私钥。鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(s...

2022-03-18 12:28:47 1357

原创 朝代歌

三皇五帝始,尧舜禹相传。夏商与西周,东周分两段。春秋和战国,一统秦两汉。三分魏蜀吴,两晋前后延。南北朝并立,隋唐五代传。宋元明清后,皇朝至此完。解读 :三皇五帝始,尧舜禹相传三皇五帝是中国在夏朝以前出现在传说中的“帝王”。现在看来,他们都是部落首领,由于实力强大而成为部落联盟的领导者。大部分的意见是燧人氏、伏羲氏、神农氏称为“三皇”,黄帝、颛顼、帝喾、尧帝、舜帝称为“五帝”,这些说法起源于春秋战国。三皇代表是古华夏的...

2022-03-17 19:47:25 3331

原创 什么是拓扑排序

在图论中,拓扑排序是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件:每个顶点出现且只出现一次。 若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面。并不是所有图都存在拓扑排序,拓扑排序在图中也不是唯一的(通常,一个有向无环图可以有一个或多个拓扑排序序列)。不含环路的有向图必包含入度为零的顶点—因此一定存在拓扑排序拓扑排序的算法实现入度为 0 的顶点 m(及其...

2022-03-15 10:12:45 955

原创 HTTPS中间人攻击,HTTPS被抓包了怎么办?

目录一、写在前面二、什么是中间人攻击三、https 是绝对安全的吗四、中间人攻击的初步了解五、中间人攻击的深入了解六、https 是如何防止中间人攻击的SSL-Pinning七、浏览器是如何确保CA证书的合法性?(1)证书包含什么信息?(2)证书的合法性依据是什么?(3)浏览器如何验证证书的合法性?八、https 可以抓包吗九、预置证书/公钥更新问题一、写在前面首先,当个位读者在看到这篇文章时,我默认大家已经对...

2022-03-12 15:33:38 11657 3

原创 按下开机键后,电脑都干了些什么?

① 第一步,开机直接访问BIOS ROM的0xFFFF0。开机以后,CS寄存器置为0xFFFF,IP寄存器置为0x0000。这样一来,CPU就会要求访问地址为0xFFFF0的这个地方。这个地址实际上不是内存的地址,它被地址控制器(实际上是南桥北桥)映射到 BIOS ROM里,而这个地址的ROM中存放着一条跳转指令。② 第二步,访问BIOS ROM中的初始化程序。0xFFFF0中这条跳转指令,跳转至BIOS ROM的某个地址。从这开始是一段ch,把这段程序复制到内存...

2022-03-12 09:37:20 1060

原创 32位和64位到底有什么区别?

目录从代码到到可执行文件从可执行文件到进程CPU位数的含义系统和软件的位数的含义程序数值int32和int64的含义系统位数会限制内存吗?总结关于32位和64位,这个概念一直让人比较懵。在买电脑的时候,我们看到过32位和64位CPU。下软件的时候,我们也看到过32位或64位的软件。就连装虚拟机的时候,我们也看过32位和64位的系统。在写代码的时候,我们的数值,也可以定义为int32或者int64。我们当然很清楚,装软件的时候,一般64位的系统就选64位的软

2022-03-09 11:31:05 22033 10

原创 常见智力题

假设某个地区有重男轻女的陋习,如果夫妻生下的是女孩就会继续生孩子;如果生下的是男孩,就不再继续生育。像这样持续下去,这个地区最终的男女比例将会是多少? 首先告诉大家答案是1:1。假设一个地区有n对年轻夫妻准备生育:如果生男孩和生女孩的几率各占50%,那么第一批新生儿当中,将会有n/2是男孩,n/2是女孩:按照当地习俗,生下男孩的家庭不再生孩子,生下女孩的家庭继续生。于是n/2的家庭会继续生育,在第二批新生儿当中,又新增加了n/4的男孩,n/4的女孩:...

2022-03-08 19:57:09 543 1

原创 MySQL的那些事

MySQL中执行一条SQL语句,相应表数据的读写都是由存储引擎去做(更新数据、查询数据)。在这个过程,存储引擎需要决策一些事情 数据是从内存查还是从硬盘查 数据是更新在内存,还是硬盘 内存的数据什么时候同步到硬盘 所以存储引擎会按照内部逻辑与内存、硬盘交互。我们可以按需选择存储引擎,比如常见的InnoDB、MyISAM、Memory等等。InnoDB的重要内存结构InnoDB存储引擎在内存中有两个非常重要的组件,分别是缓冲池(Buffer Poo..

2022-03-08 19:44:14 1638

原创 高并发下如何保证接口的幂等性?(字节跳动三面原题)

前言接口幂等性问题,对于开发人员来说,是一个跟语言无关的公共问题。本文分享了一些解决这类问题非常实用的办法,绝大部分内容我在项目中实践过的,给有需要的小伙伴一个参考。不知道你有没有遇到过这些场景: 有时我们在填写某些form表单时,保存按钮不小心快速点了两次,表中竟然产生了两条重复的数据,只是id不一样。 我们在项目中为了解决接口超时问题,通常会引入了重试机制。第一次请求接口超时了,请求方没能及时获取返回结果(此时有可能已经成功了),为了避免返回错误的结果(这种情况不可能直接返回失败

2022-03-08 11:01:17 242

原创 一致性哈希是什么,使用场景,以及它解决了什么问题?

目录如何分配请求?使用哈希算法有什么问题?使用一致性哈希算法有什么问题?如何通过虚拟节点提高均衡度?总结如何分配请求?大多数网站背后肯定不是只有一台服务器提供服务,因为单机的并发量和数据量都是有限的,所以都会用多台服务器构成集群来对外提供服务。但是问题来了,现在有那么多个节点(后面统称服务器为节点,因为少一个字),要如何分配客户端的请求呢?其实这个问题就是「负载均衡问题」。解决负载均衡问题的算法很多,不同的负载均衡算法,对应的就是不同的分配策略,适应的业务场景也不

2022-03-05 20:16:15 1968 1

原创 一文解决投骰子类的算法题

目录首先来看一道经典的问题:n个骰子的点数我们再来看另一个问题:掷骰子的N种方法牢记投骰子类问题的解决方法:动态规划首先来看一道经典的问题:n个骰子的点数题目是这样的:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。示例 1:输入: 1输出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]示例 2:输入: 2输出: [0.02778,0.05556,0.08333,

2022-01-18 23:12:10 2080

原创 1~n 整数中 1 出现的次数

题目描述输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。示例 1:输入:n = 1输出:5 (分别是1 10 11 12)示例 2:输入:n = 13输出:6 (分别是1 10 11 12 13)思路首先我们知道,肯定可以用求模取余的方法来获取1~n这n个数每个数位上的数,如果是1的话则ans+1,但我们有更巧妙的方法。根据...

2022-01-18 18:07:41 3471

原创 std::move()与移动构造函数

目录std::move()C++移动构造函数std::move()std::move的功能是将一个左值强制转化为右值引用,并返回该右值引用,继而可以通过右值引用使用该值,以用于移动语义(移动构造函数或移动赋值运算符)。std::move 的函数原型定义template <typename T>typename remove_reference<T>::type&& move(T&& t){ return static_c

2022-01-17 14:44:35 3883

chhhhhhhhhhhhh

chhhhhhhhhhhhh

2019-10-29

空空如也

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

TA关注的人

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