并查集的正确使用姿势

因为工作的关系,不得不学习了几种算法,好久不用又忘记了,这是一篇复习文章。

并查集回答的是连接问题,比如说从 a 城到 b 城有没有路,能回答有或者没有,但是不能回答具体的路是那几条,该怎么走;再比如说 a、z 这 2 个人能否通过共同好友的名片分享来加上微信。

并查集是解决点与点之间的关系,遇到实际问题的时候,需要我们进行转换成点与点,也就是建模。在数据结构上一般用数组来存储这些点。

继续阅读“并查集的正确使用姿势”

检测无向图有没有闭环

这篇文章来自工作中的一个实际问题:电子工程师在进行电路设计时,一般不用画出有闭环的导线,否则就短路了,这个是没有意义的。为了避免电子工程师的误操作,需要做这么一个防呆的工作。这是一个实际的场景,为了解决这个问题,可以转换成一个图的问题。

先来解释几个概念。

继续阅读“检测无向图有没有闭环”

Shadowsocks 安装教程

我一开始并不知道 shadowsocks(简称 ss)是由一位中国的女程序员写的,后来,她受到了当局的压力,现在的她在 github 上并不怎么活跃,真是可惜。

搭一个 ss 服务不难,以安装一个 Python 包为例。先检查一下我的环境:

cat /etc/centos-release
#CentOS Linux release 7.7.1908 (Core)
继续阅读“Shadowsocks 安装教程”

戴口罩和蜗居

2020-02-29

缺失 1 天

2020-02-28

1 月 30 日来深圳的时候,我在看《猎凶风河谷》,大雪皑皑,阒静无声,旷野中的人们显得孤独渺小,苍凉悲壮。一如现车上的人都戴着口罩,车厢里有人,但是这种距离感,跟独自站在旷野中没有什么分别。

标题:我经历过的传染病及其中的事

内容来自曾小乱的blog:https://zengxiaoluan.com/infectious-diseases-ive-been-through-and-things-about-them/

2020-02-27

某天,我写博客突然有一个小需求:今天我修改了一篇以前的老文章,但是她没有排序靠前,没能让大家最新看到我修改了什么,这不是我想要的,怎么解决呢?这就是这个小插件的源头。

标题:新 WordPress 插件:Reorder Posts

内容来自曾小乱的blog:https://zengxiaoluan.com/new-wordpress-plugin-reorder-posts/

继续阅读“戴口罩和蜗居”

函数柯里化

函数柯里化是一个很有意思的话题,用起来也非常的神奇有趣。以前的我不太想深入的去了解这个话题,今天做了一些例子放在下面,加深理解。

在计算机科学中,柯里化(英语:Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数而且返回结果的新函数的技术。

https://zh.wikipedia.org/wiki/%E6%9F%AF%E9%87%8C%E5%8C%96

简单理解,就是将一个可以接受多个参数的函数转化成可以接受任意个数参数的函数。我们可以将 curry 函数简化成这样:

继续阅读“函数柯里化”

使用 prettier 格式化 PHP 代码

在 js 项目中,因为使用了 prettier,可以一顿乱写,完全不管格式,写完之后,在自动保存的时候使用 prettier 格式化一下。代码又变成了美美哒、井然有序的样子,这种体验非常好。这种好的体验,应该怎么复制到 PHP 的开发中呢?那么请看这篇文章吧。

继续阅读“使用 prettier 格式化 PHP 代码”