Nolan Blog

像我这样的人不多, 孤独不会使我难过

图片加载中占位符与失败重连

Keynote: Javaascript img-loading-alt

图片加载中占位符与失败重连 项目中遇到了一个需求,要求在图片加载时候显示loading图片,让用户看到加载中的状态。并且在图片载入失败时候完成点击重传。 思路是这样的,写一个公用函数,输入是每个图片的dom元素,然后对其进行设置占位符。 module.exports = { /** * 图片加载时,显示占位符 * @param url 图片原始 ur...

JS手撸数据结构系列 (六) ——动态规划与最长公共子序列

Keynote: Javascript Lcs Dp

LCS (最长公共子序列) 定义:一个数列 S,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。 例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子序列,则输出它们的长度4,并打印任意一个子序列。 动态规划 一、基本概念 动态规划过程是:每...

JS手撸数据结构系列 (五) ——图的遍历与迷宫求解

Keynote: Javascript Maze Graph

迷宫问题求解 在上一篇文章中实现了生成随机迷宫的算法,这一节当然要实现迷宫求解啦,先上效果图。源代码及在线预览 广度优先遍历(BFS) 广度优先搜索算法(Breadth-First-Search),又译作宽度优先搜索,或横向优先搜索,简称BFS,是一种图形搜索算法。使用队列实现。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。 我们使用类似...

JS手撸数据结构系列 (四) ——Prim算法与迷宫生成

Keynote: Javascript Maze Prim

迷宫问题 一个100100的方格的迷宫,障碍未知,只知道起点和终点,以第一视角进入,求最短距离路径。* 这是当时腾讯二面的面试官给我留的题目,当时只要求写出了BFS求最短路径的算法,那么就会很自然的想到如何生成迷宫呢? 迷宫可以看成是一个图,也可以看成是一个二维数组,其中数组元素的值为1,代表可以走通,代表路,其中数组元素的值为0的话,代表不能走通,代表墙壁。要想生成随机迷宫,难...

JS手撸数据结构系列 (三) ——子序列、幂集与递归

Keynote: JavaScript Subsequence Powerset

穷举所有子序列 当时的情况是这样的,本来想用最蠢的方法写LCS(最长公共子序列),穷举A、B的所有子序列,然后循环套循环逐一比较…… 不过…..穷举所有子序列…..貌似也不是那么一下就能解决….. 人脑遍历的结果如下所示:一共 $2^4 =16$ 种结果,归纳成公式就是$ 2^{ str.length} $。现在我们需要解决的问题就变成了如何穷举出所有的子序列。 // 一个字符串,也...