暂无搜索历史
前面写了一篇文章,介绍了如何用 Node.js + 钉钉 API 实现考勤打卡连续提醒的小工具。
开始的时候我们都设置了一个打卡闹铃,下班后准时提醒,但有的时候加班,加完班回家又忘记打卡了。还有的时候迷之自信的以为自己打卡了,第二天看考勤记录发现没打卡。
上一篇我们详细介绍了前端如何采集异常数据。采集异常数据是为了随时监测线上项目的运行情况,发现问题及时修复。
前两篇,我们介绍了为什么前端应该有监控系统,以及搭建前端监控的总体步骤,前端监控的 Why 和 What 想必你已经明白了。接下来我们解决 How 如何实现的问...
上一篇介绍了,前端为什么要有监控系统?前端监控系统的意义何在?有小伙伴看完后留言想听些详细的实现。那么本篇我们就开始介绍前端监控如何实现。
提到监控系统,大部分同学首先想到的是后端监控。很明显,比如检测服务器性能,数据库性能,API 的访问流量,以及各种服务的运行情况等等,都与后端息息相关。而前端更...
上一篇我们介绍了树的概念,什么是二叉树与二叉搜索树,并实现了一个二叉搜索树的类,然后完成了节点插入的功能。
到本篇为止我们已经学习了大多数的顺序数据结构,而第一个非顺序数据结构是散列表。本篇我们学习第二种非顺序数据结构 —— 树,是一个相对复杂的数据结构。
上一篇介绍了递归,以及如何用递归实现数的阶乘。其实递归大家平时都会碰到,只不过有时候写一个递归函数要改好多次才能走通,缺乏那种能直接写好的直觉。其实还是关键思路...
前面我们学习了很多线性的数据结构,包括数组,栈,队列,链表等,当需要操作其中的元素时,大多时候是通过遍历数据结构来实现的。
前两篇我们分别介绍了什么是散列表,如何动手实现一个散列表,并且用“分离链接法”解决了散列表中散列值冲突的问题。这一篇我们介绍另一个方案:线性探查法。
上一篇我们介绍了什么是散列表,并且用通俗的语言解析了散列表的存储结构,最后动手实现了一个散列表,相信大家对散列表已经不陌生了。
上一篇我们一篇搞定了字典,这篇呢我们学习一个与字典非常相似的数据结构 —— 散列表。散列表与字典基本一致,区别是字典存储的 key 是字符串,而散列表是一个数值...
经过上一篇的学习,数据结构的集合部分已经完结了。那么下面我们又要认识一个新的数据结构,它的名字相信你绝不陌生,它就是字典。
上一篇我们介绍了什么是集合,并且手动实现了一个集合的类。简单总结,集合就是一组元素唯一,并且没有顺序的数据集,关键是元素唯一。
集合这个词应该比较耳熟,大多数人没接触代码前就学过了。回想一下你的高一数学课本上是不是出现过这个词,就在第一章,概念如下:
上一篇我们介绍了循环链表,这篇是链表的最后一篇,介绍最后一种链表类型 —— 有序链表。
其实总结起来,我们讲到的链表也好,双向链表也好,组成每一个链表的元素就好比一个一个铁环,连接起来,就组成了一条长长的铁链。
前两篇我们详细介绍了链表,我们知道链表是元素互相独立,但是又互相连接的一个有序集合。当我们查询某一个元素的时候,必须从表头开始,一级一级向后查找。
上一篇我们介绍了链表的概念,然后动手实现了 push 和 removeAt 两个方法。这两个方法虽然只是基础的功能,但是实现思路非常关键。因为理解了这两个方法的...
暂未填写公司和职称
暂未填写个人简介
暂未填写技能专长
暂未填写学校和专业
暂未填写个人网址