摘要:动态规划 动态规划(Dynamic Programming,DP)是一种将复杂问题分解成更小的子问题来解决的优化算法。下面有一些用动态规划来解决实际问题的算法: 最少硬币找零 给定一组硬币的面额,以及要找零的钱数,计算出符合找零钱数的最少硬币数量。例如,美国硬币面额有1、5、10、25这四种面额,如 阅读全文
posted @ 2019-09-03 14:18 Jaxu 阅读 (301) 评论 (0) 编辑
摘要:在计算机编程中,排序算法是最常用的算法之一,本文介绍了几种常见的排序算法以及它们之间的差异和复杂度。 冒泡排序 冒泡排序应该是最简单的排序算法了,在所有讲解计算机编程和数据结构的课程中,无一例外都会拿冒泡排序作为开篇来讲解排序的原理。冒泡排序理解起来也很容易,就是两个嵌套循环遍历数组,对数组中的元素 阅读全文
posted @ 2019-08-23 17:18 Jaxu 阅读 (261) 评论 (1) 编辑
摘要:之前在看《从一到无穷大:科学中的事实和胰测》(乔治·伽莫夫著)这本书的时候,其中有个章节是讲时间和空间关系的,里面讲到对于光速的测定。下面是原书中人们对于如何测定光速的描述: 第一次测定光速的尝试是著名的意大利物理学家伽利略(Galileo Galilei)在 17 世纪进行的。他和他的助手在一个黑 阅读全文
posted @ 2019-08-16 15:59 Jaxu 阅读 (111) 评论 (0) 编辑
摘要:提高网站性能最简单的方式之一是合并压缩JavaScript和CSS文件。但是当你需要调试这些压缩文件中的代码时,那将会是一场噩梦。不过也不用担心,souce maps将会帮你解决这一问题。 Source map提供了一种方式,能够将压缩文件中的代码映射回源文件中对应的位置。这意味着,你可以借助一些软 阅读全文
posted @ 2019-08-15 15:38 Jaxu 阅读 (136) 评论 (0) 编辑
摘要:在计算机科学中,图是一种网络结构的抽象模型,它是一组由边连接的顶点组成。一个图G = (V, E)由以下元素组成: V:一组顶点 E:一组边,连接V中的顶点 下图表示了一个图的结构: 在介绍如何用JavaScript实现图之前,我们先介绍一些和图相关的术语。 如上图所示,由一条边连接在一起的顶点称为 阅读全文
posted @ 2019-08-14 11:38 Jaxu 阅读 (288) 评论 (2) 编辑
摘要:在计算机科学中,树是一种十分重要的数据结构。树被描述为一种分层数据抽象模型,常用来描述数据间的层级关系和组织结构。树也是一种非顺序的数据结构。下图展示了树的定义: 在介绍如何用JavaScript实现树之前,我们先介绍一些和树相关的术语。 如上图所示,一棵完整的树包含一个位于树顶部的节点,称之为根节 阅读全文
posted @ 2019-08-09 19:43 Jaxu 阅读 (363) 评论 (0) 编辑
摘要:在前一篇文章中,我们介绍了如何在JavaScript中实现集合。字典和集合的主要区别就在于,集合中数据是以[值,值]的形式保存的,我们只关心值本身;而在字典和散列表中数据是以[键,值]的形式保存的,键不能重复,我们不仅关心键,也关心键所对应的值。 我们也可以把字典称之为映射表。由于字典和集合很相似, 阅读全文
posted @ 2019-08-06 14:31 Jaxu 阅读 (229) 评论 (1) 编辑
摘要:与数学中的集合概念类似,集合由一组无序的元素组成,且集合中的每个元素都是唯一存在的。可以回顾一下中学数学中集合的概念,我们这里所要定义的集合也具有空集(即集合的内容为空)、交集、并集、差集、子集的特性。 在ES6中,原生的Set类已经实现了集合的全部特性,稍后我们会介绍它的用法。 我们使用JavaS 阅读全文
posted @ 2019-08-02 17:12 Jaxu 阅读 (231) 评论 (1) 编辑
摘要:链表用来存储有序的元素集合,与数组不同,链表中的元素并非保存在连续的存储空间内,每个元素由一个存储元素本身的节点和一个指向下一个元素的指针构成。当要移动或删除元素时,只需要修改相应元素上的指针就可以了。对链表元素的操作要比对数组元素的操作效率更高。下面是链表数据结构的示意图: 要实现链表数据结构,关 阅读全文
posted @ 2019-08-01 18:22 Jaxu 阅读 (201) 评论 (2) 编辑
摘要:队列与栈不同,它遵从先进先出(FIFO——First In First Out)原则,新添加的元素排在队列的尾部,元素只能从队列头部移除。 我们在前一篇文章中描述了如何用JavaScript来实现栈这种数据结构,这里我们对应地来实现队列。 与栈的实现方式类似,唯一不同的是从队列移除元素时取的是队列头 阅读全文
posted @ 2019-07-30 15:17 Jaxu 阅读 (87) 评论 (0) 编辑
摘要:在计算机编程中,栈是一种很常见的数据结构,它遵从后进先出(LIFO——Last In First Out)原则,新添加或待删除的元素保存在栈的同一端,称作栈顶,另一端称作栈底。在栈中,新元素总是靠近栈顶,而旧元素总是接近栈底。 让我们来看看在JavaScript中如何实现栈这种数据结构。 我们用最简 阅读全文
posted @ 2019-07-30 11:06 Jaxu 阅读 (121) 评论 (0) 编辑
摘要:最近发现一个基于Node.js平台上的Express框架运行的Web网站经常报这样一个错误: 网站的源码中有专门针对错误处理的中间件,经过精简之后的代码如下: 乍一看,这里的status code不太可能为0,因为无论err.code的值为字符串0还是数字0,最终都会被赋值为500。除非err.co 阅读全文
posted @ 2019-06-27 16:31 Jaxu 阅读 (222) 评论 (0) 编辑
摘要:工作是最好的投资 ——摘录自《工作是最好的投资》(金文著) 薪水只是工作残留下的“糟粕” “如果只是把工作当作一件差事,或者只将目光”停留在工作本身,那么即使是从事你最喜欢的工作,你依然无法持久地保持对工作的激情。但如果把工作当作一项事业来看待,情况就会完全不同。”——微软公司董事长比尔·盖茨 “一 阅读全文
posted @ 2019-04-10 22:04 Jaxu 阅读 (226) 评论 (0) 编辑
摘要:在Node.js中,我们可以通过qr-image包直接在后台生成二维码图片,使用方法很简单: 但是如果我们希望生成的不仅仅是二维码,而是在一张给定的背景图上生成二维码,并在底部配上相应的文字说明,那么就需要借助于其它一些包来实现。 images包是Node.js上一个轻量级的跨平台图像处理库,可以用 阅读全文
posted @ 2018-12-29 16:56 Jaxu 阅读 (636) 评论 (0) 编辑
摘要:在Web页面上,如果想模拟对话框效果,一般会给div元素添加position:fixed的样式来实现,然后给背景添加一个半透明的遮罩。如: HTML代码: 这种结构在大部分浏览器和移动设备上显示都没有问题,但是在苹果手机(safari mobile)上,当底部的键盘或者选择器(日期选择,下拉列表选择 阅读全文
posted @ 2018-12-12 18:32 Jaxu 阅读 (1079) 评论 (0) 编辑
摘要:我们在做前端表单提交时,经常会遇到要对表单中的数据进行校验的问题。如果用户提交的数据不合法,例如格式不正确、非数字类型、超过最大长度、是否必填项、最大值和最小值等等,我们需要在相应的地方给出提示信息。如果用户修正了数据,我们还要将提示信息隐藏起来。 有一些现成的插件可以让你非常方便地实现这一功能,如 阅读全文
posted @ 2018-10-18 17:20 Jaxu 阅读 (2153) 评论 (0) 编辑
摘要:Shutter是一个由第三方提供的在Ubuntu上运行的截图工具,相对于系统自带的截图工具(默认可通过Ctrl + Shift + Print快捷键启动截图),最大的优点就是可以即时对图片进行编辑,在图片上做一些标记和文字标注等,使用起来很方便。在Ubuntu 16.04上,该软件运行一切正常,当将 阅读全文
posted @ 2018-08-30 18:47 Jaxu 阅读 (1456) 评论 (0) 编辑
摘要:问题描述:服务器系统架构采用的是koa(并非koa2),客户端富文本编辑器采用的是百度的ueditor控件。现在需要ueditor支持将图片直接上传到七牛云。 前提:百度的ueditor需要在本地配置为可用,图片上传相关的配置可以参考官方文档的描述。由于服务器用的node.js,因此ueditor目 阅读全文
posted @ 2018-06-20 11:51 Jaxu 阅读 (608) 评论 (0) 编辑
摘要:通过JQuery的.html()函数我们可以非常方便地加载一段HTML到指定的元素中,例如给<div></div>中放入一组图片。问题是JQuery的.html()函数是同步的,如果我们想知道HTML被加载之后容器的高,例如获取容器的offsetHeight或scrollHeight属性的值,必须要 阅读全文
posted @ 2018-05-24 13:31 Jaxu 阅读 (777) 评论 (0) 编辑
摘要:网页中的select下拉列表,文字太长的话在iOS的Safari浏览器里会被自动截断,显示成下面这种: 安卓版的浏览器则没有这个问题。 如何让下拉列表中的文字在iOS的Safari浏览器里显示完整呢?答案是使用<optgroup></optgroup>标签。有关optgroup标签的作用可以查看w3 阅读全文
posted @ 2018-03-16 11:51 Jaxu 阅读 (301) 评论 (0) 编辑