李子园

day day up


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

算法-链表

发表于 2020-04-16 更新于 2020-04-18 分类于 算法

两数相加 LeetCode-2

给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例:

1
2
3
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
阅读全文 »

Hexo 部署到GitHub时categories中的大小写问题

发表于 2020-04-16 分类于 工具

起因

使用Hexo添加新文章后,部署到GitHub上,有时候新增或者修改了tag或者categories,比如新增categories为Mac,然后再本地.deploy_git/categories中,Mac目录显示正常,本地预览正常,但是推送到GitHub后,categories目录中显示为mac,从而导致点击Mac分类时显示404。

阅读全文 »

Hexo 插入数学公式

发表于 2020-04-16 分类于 工具

安装配置hexo-math

hexo 中已经对mathjax、katex 进行了集成,这里使用的是mathjax,需要先下载 hexo-math

1
npm install hexo-math --save

然后在站点目录下_config.yml 中配置

1
2
3
math:
engine: 'mathjax' # or 'katex'
mathjax:
阅读全文 »

Nginx配置HTTPS

发表于 2020-04-14 分类于 Linux

由于自己是阿里云的域名,所以在阿里云的 SSL证书 中申请的ssl证书。

证书申请流程:
img

阅读全文 »

HTTPS详解

发表于 2020-04-14 分类于 Linux
1.什么是https

HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。

HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为 HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。

img

阅读全文 »

算法-排序

发表于 2020-04-14 更新于 2020-04-18 分类于 算法
冒泡排序

对数组按照从小到大进行排序,从前往后对相邻的两个数依次进行比较和调整,让较大的往后移动,每轮将最大的数移动到最后。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function blbble_sort($arr) {
$count = count($arr);
if($count == 0) {
return false;
}

for($i = 0; $i < $count; $i++) {
// 循环控制每轮,将该轮最大的数字移动到最后
for($j = 0; $j < $count - $i; $j++) {
if($arr[$j] > $arr[$j + 1]) {
$temp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $temp;
}
}
}
return $arr;
}
阅读全文 »

算法-搜索

发表于 2020-04-14 更新于 2020-04-18 分类于 算法
二分搜索

如果数组中的项按顺序排列,就可以不必进行线性搜索,而可以使用二分搜索。
查找时,先从中间数据开始,检查中间的项是否比我们要寻找的项大或小,并决定保留哪一半,并继续重复前面的搜索,直到找到需要搜索的值。
搜索长度呈指数递减,所以,最坏和平均时间复杂度为$O(logn)$,空间复杂度为$O(1)$。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function binSearch($arr, $search) {
// 搜索数组的最大和最小下标
$height = count($arr) - 1;
$low = 0;
while($low <= $height) {
$mid = floor(($low + $height) / 2);
if($arr[$mid] == $search) {
return $mid;
} elseif ($arr[$mid] < $search) {
$low = $mid + 1;
} elseif($arr[$mid] > $search) {
$height = $mid -1;
}
}
return '查找失败';
}
阅读全文 »

算法-二叉树

发表于 2020-04-14 更新于 2020-04-18 分类于 算法

遍历二叉树

深度优先遍历 DFS

二叉树的深度优先遍历可以细分为:先序遍历、中序遍历、后续遍历。

  • 前序遍历:根节点 -> 左子树 -> 右子树
  • 中序遍历:左子树 -> 根节点 -> 右子树
  • 后续遍历:左子树 -> 右子树 -> 根节点
    阅读全文 »

时间复杂度 和 空间复杂度

发表于 2020-04-14 更新于 2020-04-18 分类于 算法

概念

时间复杂度和空间复杂度是用来评价算法效率高低的两个标准。

  • 时间复杂度:就是执行算法需要消耗的时间长短,越快越好。
  • 空间复杂度:就是执行当前算法需要消耗的存储空间大小,也是越小越好。
阅读全文 »

压测工具—ab、webbench、siege

发表于 2020-03-20 分类于 工具

相关概念

吞吐率(Requests per second)
  • 概念:服务并发处理能力的量化描述,单位是 reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
  • 计算公式:总请求数 / 处理完成这些请求数所花费的时间,即:
    Request per second = Complete requests / Time taken for tests
并发连接数(The number of concurrent connections)
  • 概念:某个时刻服务器所接受的请求数目,简单的将,就是一个会话。
并发用户数(The number of concurrent users,Concurrency Level)
  • 概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。
用户平均请求等待时间(Time per request)
  • 计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即:
    Time per request = Time taken for tests /( Complete requests / Concurrency Level)
服务器平均请求等待时间(Time per request: across all concurrent requests)
  • 计算公式:处理完成所有请求数所花费的时间 / 总请求数,即:
    Time taken for / testsComplete requests
    可以看到,它是吞吐率的倒数。
    同时,它也=用户平均请求等待时间/并发用户数,即
    Time per request / Concurrency Level
阅读全文 »
1234…8
多乐

多乐

li写东西的地方
73 日志
10 分类
44 标签
GitHub E-Mail Twitter
© 2021 多乐
© 2018-2019 Powered By 多乐
|
粤ICP备19082463号
|