自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

descire

技术分享

  • 博客(264)
  • 收藏
  • 关注

原创 数据结构进阶篇,二叉搜索树专题

230. 二叉搜索树中第K小的元素  「题目:」  给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。  「示例:」  输入:root = [3,1,4,null,2], k = 1,输出:1。  「解题思路:」  由于这是一个二叉搜索树,所以其中序序列是一个严格的递增序列。  那么本道题就转化为寻...

2022-05-27 08:40:40 329

原创 数据结构进阶篇,二叉树路径和专题

113. 路径总和 II  「题目:」  给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。  叶子节点 是指没有子节点的节点。  「示例:」  输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22,输出:[[5,4,...

2022-05-24 08:40:17 500

原创 数据结构进阶篇,二叉树层级遍历专题

102. 二叉树的层序遍历  「题目:」  给你二叉树的根节点 root ,返回其节点值的 层序遍历 。(即逐层地,从左到右访问所有节点)。  「示例:」  输入:root = [3,9,20,null,null,15,7],输出:[[3],[9,20],[15,7]]。  「递归解法:」  使用深度优先搜索来解决,递归的深度即是二叉树的层级,然后通过二维数组来记录当前层...

2022-05-20 08:40:32 619

原创 数据结构进阶篇,二叉树构造专题

105. 从前序与中序遍历序列构造二叉树  「题目:」  给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。  「示例:」  输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7],输出: [3,9,2...

2022-05-16 08:30:00 391

原创 数据结构进阶篇,链表专题(二)

61. 旋转链表  「题目:」  给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。  「示例:」  输入:head = [1,2,3,4,5], k = 2, 输出:[4,5,1,2,3].  「解题思路:」  记链表的长度为 n,如果 k 大于等于 n 时,只需要向右移动 k % n 次即可,因为每 n 次移动,链表会恢复原状。  由上图...

2022-05-09 08:30:00 277

原创 数据结构进阶篇,链表专题

2. 两数相加  「题目:」  给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。  请你将两个数相加,并以相同形式返...

2022-03-14 08:30:00 1624

原创 数据结构进阶篇,链表删除元素专题

19. 删除链表的倒数第 N 个结点  「题目:」  给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。  「示例:」  输入:head = [1,2,3,4,5], n ...

2022-03-09 08:30:00 2575

原创 数据结构进阶篇,回文字符串专题

5. 最长回文子串  「题目」:  给你一个字符串 s,找到 s 中最长的回文子串。  「示例」:  输入:s = "babad",输出:"bab"。  「解题思路」:  首先,判断一个字...

2022-03-07 08:30:00 1517

原创 数据结构进阶篇,字符串滑动窗口专题

3. 无重复字符的最长子串  「题目:」  给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。  「示例:」  输入: s = "abcabcbb",输出: 3 。  「解...

2022-02-10 08:40:00 583

原创 数据结构进阶篇,数组连续子序列专题

128. 最长连续序列  「题目:」  给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。  「示例:」  输入:nums = [100,...

2022-02-07 08:40:00 1211

原创 数据结构进阶篇,数组排列专题

46. 全排列  「题目:」  给定一个不含重复数字的数组 nums ,返回其所有可能的全排列 。你可以按任意顺序返回答案。  「示例:」  输入:nums = [1,2,3],输出:[[...

2022-02-05 08:40:00 272

原创 数据结构进阶篇,数组组合专题

39. 组合总和  「题目:」  给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target ...

2022-02-04 08:40:00 689

原创 数据结构进阶篇,数组和值专题

15. 三数之和  「题目:」  给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不...

2022-02-03 08:40:00 1093

原创 数据结构入门二叉树篇(二)

700. 二叉搜索树中的搜索  给定二叉搜索树(BST)的根节点 root 和一个整数值 val。  你需要在 BST 中找到节点值等于 val 的节点。返回以该节点为根的子树。如果节点不...

2022-02-02 08:40:00 86

原创 数据结构入门-二叉树篇(一)

144. 二叉树的前序遍历  给你二叉树的根节点 root ,返回它节点值的前序遍历。  示例:输入:root = [1,null,2,3],输出:[1,2,3]。❝前序遍历是二叉树遍历的...

2022-01-31 08:40:00 1116

原创 数据结构入门链表篇

141. 环形链表  给你一个链表的头节点 head ,判断链表中是否有环。  如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测...

2022-01-26 08:30:00 771

原创 数据结构入门数组篇(二)

350. 两个数组的交集 II  给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出...

2022-01-19 08:30:00 504

原创 数据结构入门数组篇(一)

217. 存在重复元素  给定一个整数数组,判断是否存在重复元素。  如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。  示例:输...

2022-01-17 08:30:00 631

原创 浅谈可选链在前端的应用及实现

一、前言  业务开发过程中,避免不了操作复杂的嵌套对象,而对于这种场景通常会遇到两个痛点:操作嵌套对象时缺少健壮性处理,从而触发运行时错误,进而导致页面白屏健壮性处理的方式不够优雅,出现大...

2022-01-11 08:40:00 399

原创 剖析 b-validate 实现原理

一、前言  b-validate 是一个小巧且功能丰富的类型校验库,它的特点如下:链式调用支持自定义校验规则支持 schema 校验支持异步校验  它基础的使用方式如下:bv(123)...

2021-12-29 08:40:00 387

原创 剖析 microdiff 实现原理

一、前言  microdiff 是一款对比两个对象(object or array)属性的库,相比较其它同类型的库,有以下特点:包体积小于 1 kb执行效率高零依赖支持 TypeScrip...

2021-12-25 08:45:00 181

原创 剖析 hashids 实现原理(核心篇)

一、应用场景  以 YouTube 的视频详情页为例:https://www.youtube.com/watch?v=8dUpL8SCO1w  每一个视频在数据库中都有一个唯一的主键,但是...

2021-12-21 08:16:00 1464

原创 Fisher–Yates shuffle 算法

前言  Fisher–Yates shuffle 是一个将有限集合生成一个随机序列的算法,并且具备等概率和高效率的特点。算法过程  Fisher–Yates shuffle 算法生成随机序...

2021-12-20 08:25:09 1368

原创 前端重试策略 - 指数退避算法

前言  在日常的开发过程中,由于接口的不稳定性,又或者是网络抖动导致的单次接口请求失败,需要前端通过重试策略,来解决系统不可用的问题。  接下来我们一起探索前端最佳的重试策略。基础实现  ...

2021-07-07 12:12:43 971

原创 如何让函数只执行一次

一、前言  实现函数只执行一次的核心思想非常的简单:「通过记录是否被执行的状态,来决定函数是否需要被调用」。functionstart(){console.log('in...

2021-07-06 12:19:33 6506

原创 一文玩转 mini-signals 发布-订阅模式库

一、前言  mini-signals 是一款轻量、快速的发布-订阅模式库。对于一名合格的前端仔,应该对发布-订阅模式了然于胸。❝发布-订阅模式定义了对象间一对多的依赖关系,可以用来解决对象...

2021-07-05 09:02:07 108

原创 剖析断言库 should.js 实现原理

一、前言  断言库是单元测试的重要组成部分,在编写单元测试代码时,通过断言库来描述代码逻辑的预期效果,从而验证代码逻辑的正确性。  断言库一般分为两大类:TDD(Test Driven D...

2021-05-25 08:28:35 373 3

原创 Node.js 中如何收集和解析命令行参数

前言  在开发 CLI(Command Line Interface)工具的业务场景下,离不开命令行参数的收集和解析。  接下来,本文介绍如何收集和解析命令行参数。收集命令行参数  在 ...

2021-01-08 08:10:00 747

原创 如何利用 JavaScript 实现并发控制

一、前言  在开发过程中,有时会遇到需要控制任务并发执行数量的需求。  例如一个爬虫程序,可以通过限制其并发任务数量来降低请求频率,从而避免由于请求过于频繁被封禁问题的发生。  接下来,...

2020-12-31 08:10:00 3830

原创 消息摘要算法入门教程

前言  消息摘要算法主要包含以下三个系列:MD(Message Digest) 消息摘要算法SHA(Secure Hash Algorithm) 安全散列算法MAC (Message A...

2020-11-25 08:18:00 299

原创 Base64 编码入门教程

前言  Base64 是一种基于 64 个可打印字符来表示二进制的表示方法。具体的 64 个字符如下图所示:出现背景  早期邮件传输协议基于 ASCII 文本,对于诸如图片、视频等二进制...

2020-11-23 08:14:01 520

原创 如何在 Express4.x 中愉快地使用 async

前言  为了能够更好地处理异步流程,一般开发者会选择 async 语法。在 express 框架中可以直接利用 async 来声明中间件方法,但是对于该中间件的错误,无法通过错误捕获中间...

2020-11-17 08:34:21 681

原创 前端工程师的 LeetCode 之旅 -- 周赛 201

01整理字符串题目描述【Easy】给你一个由大小写英文字母组成的字符串 s 。一个整理好的字符串中,两个相邻字符 s[i] 和 s[i + 1] 不会同时满足下述条件:0 <= i...

2020-08-12 08:00:00 134

原创 使用 localStorage 的最佳实践

前言localStorage 是 HTML5 规范中作为持久化保存客户端数据的方案,localStorage 可以用于数据缓存,日志存储等应用场景。由于 localStorage 本身的...

2020-08-05 10:05:02 767

原创 详解模拟类行为中的 JavaScript 知识点

前言ES6 新增了 class 语法,但是不同于传统面向对象编程(OOP)类的实现,其本质上是基于原型实现的语法糖,本文主要介绍其中的实现原理。类必须通过 new 实例化类是通过调用构造...

2020-08-04 08:00:00 114

原创 前端工程师的 LeetCode 之旅 -- 周赛 200

01统计好三元组题目描述【Easy】给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。如果三元组(arr[i], arr[j], arr[k])满...

2020-08-03 08:10:42 157

原创 前端工程师的 LeetCode 之旅 -- 周赛 185

01 重新格式化化字符串题目描述【Easy】给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母。请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同。也就是说,字母...

2020-05-03 08:16:00 297 1

原创 前端工程师的 LeetCode 之旅 -- 夜喵 24

01 逐步求和得到正数的最小值题目描述【Easy】给你一个整数数组 nums 。你可以选定任意的 正数 startValue 作为初始值。你需要从左到右遍历 nums 数组...

2020-04-21 08:16:00 100

原创 前端工程师的 LeetCode 之旅 -- 周赛 184

01数组中的字符串匹配题目描述【Easy】给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词。请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词。...

2020-04-16 08:16:00 136

原创 前端工程师的 LeetCode 之旅 -- 周赛 183

01 非递增顺序的最小子序列题目描述【Easy】给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。如果存在多...

2020-04-08 08:16:00 153

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除