Leetcode 题解系列 -- 股票的最大利润(动态规划)

2022-01-28
阅读 3 分钟
3.4k
本专题旨在分享刷Leecode过程发现的一些思路有趣或者有价值的题目。【当然是基于js进行解答】。动态规划一样是leetcode 中等难度习题的重点类型之一,同时可能也是面试热点之一,所以重要性不言而喻。题目相关原题地址: [链接]题目描述:示例1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,...

Leetcode 题解系列 -- 对称二叉树(递归)

2022-01-27
阅读 3 分钟
2.9k
题目描述:请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

Leetcode 算法题解系列 - 二叉树的层序遍历

2022-01-25
阅读 3 分钟
2.8k
本专题旨在分享刷Leecode过程发现的一些思路有趣或者有价值的题目。【当然是基于js进行解答】。(这道题应该算是二叉树的基础题,建议还是学一下,不难且经典)

Leetcode 算法题解系列 - 二维数组快速查找元素(二叉搜索树)

2022-01-24
阅读 2 分钟
2.8k
题目描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 {代码...}

Leetcode 算法题解系列 - 最小栈

2022-01-20
阅读 3 分钟
2.9k
题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min 、push 及 pop 的时间复杂度都是 O(1)。 {代码...}

详解JS的继承(三)-- 图解Es6的Extend

2022-01-14
阅读 6 分钟
4.1k
距离上一篇js的继承系列已经过去了四年,时不时还有新的读者评论和回复,开心之余也想着更新一下内容,因为当时的内容里没有涉及到es6的 extend 实现,所以现在抽空补上。 当然,如果是0基础的同学或者对于基本的继承有些遗忘的同学,可以先回顾一下前两篇:
封面图

浅谈React 高阶组件

2021-07-31
阅读 7 分钟
5.2k
5、6月一直忙着自己的琐事,7月(7月31也还是7月嘛)抽空整理一下旧的内容,有之前的读者提到想了解下高阶组件这块的知识点,就刚好整理了一下。

浅谈 Virtual DOM

2021-04-22
阅读 5 分钟
4.8k
“Virtual Dom 的优势是什么?” 这是一个常见的面试问题,但是答案真的仅仅是简单粗暴的一句“直接操作dom和频繁操作dom的性能很差”就完事了吗?如果是这样的话,不妨继续深入地问几个问题:

十分钟看懂JS的LRU Cache 算法(上)

2021-03-30
阅读 4 分钟
7.2k
在leetcode上刷题时,遇到一个难得能够直接在前端用得上的算法思路(说实话,前端能用到算法的场景真的少的可怜),所以抓住和大家做一个分享。恰逢金三银四求职季,多掌握一个知识点,多一份进大厂打工的希望!加油,打工人!

聊聊Javascript 垃圾回收机制(二)-V8引擎下的垃圾回收机制

2021-03-17
阅读 5 分钟
6.8k
上文大概介绍了垃圾回收的机制和标记清除法的核心思路, 接下来准备深入介绍下v8引擎里的垃圾回收算法。 既然是算法类的介绍,那自然是比较枯燥的,如果想完全弄懂,可以收藏下来,多看几遍(!·_·!)。

聊聊Javascript 垃圾回收机制-(一)

2021-03-15
阅读 4 分钟
2.8k
都需要分配内存,而当这些值不再被使用的时候,js就需要在合适的时候将这部分的内存进行回收,这就是垃圾回收机制,对于一些大型应用程序来说,垃圾回收可以有效提高性能。在js里,执行垃圾回收是自动执行的,不对外提供任何接口,不过还是有必要适当了解下它的原理。

实用算法解析 - 前缀和

2020-06-05
阅读 5 分钟
4.4k
给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。

实用算法解析 - 动态规划

2020-04-09
阅读 5 分钟
3.7k
前言 最近刚好有在刷Leetcode,所以顺便也分享一些常见基础的算法解析。 正文 动态规划是一种相当常用的算法,一般用在求解最优解问题中,理解它的原理十分有必要(最直接的好处是可以提升刷题效率~)。 初识-从梯子问题说起 直接进入正题。从一个简单的爬楼梯问题说起: 问题1:小明爬楼梯时,有2种选择:每次跨1步,或...

React transaction完全解读

2019-12-16
阅读 12 分钟
7.7k
在阅读react源码中,发现其中大量用到了transaction(中文翻译为事务)这个写法,所以单独做一下分析。其实在react中transaction的本质,其实算是一种设计模式,它的思路其实很像AOP切面编程:

React setState 这样用,开发直呼内行!

2019-12-03
阅读 8 分钟
6.3k
(Long time no see, 标题皮一下,内容还是良心的)众所周知, React 是通过管理状态来实现对组件的管理,而setState是用于改变状态的最基本的一个方法,虽然基础,但是其实并不容易掌握,本文将结合部分源码对这个方法做一个相对深入的解析。

浅谈react context

2019-08-28
阅读 8 分钟
8.8k
好久不见!(两个多月没更新内容,惭愧了三分钟)。接下来的文章主要是开始对react的内容做一些整理(疯狂立Flag)。本文的对象是Context.

js异步从入门到放弃(实践篇) — 常见写法&面试题解析

2019-06-13
阅读 5 分钟
3.7k
前文 该系列下的前几篇文章分别对不同的几种异步方案原理进行解析,本文将介绍一些实际场景和一些常见的面试题。(积累不太够,后面想到再补) 正文 流程调度(schedule) 流程调度,最常见的就是继发和并发(或者说串行和并行)两种类型,在日常工作里都很常见。接下来结合实际场景进行说明: 1. 串行执行一系列异步操作,...

js异步从入门到放弃(四)- Generator 封装异步任务

2019-05-26
阅读 4 分钟
4.3k
在之前的文章介绍了传统异步的实现方案,本文将介绍ES6中的一种全新的异步方案--Generator函数。 generator简介 简单介绍一下generator的原理和语法,(更详细内容请看ECMAScript 6 入门,本文只介绍和异步相关的核心内容) 基本语法 通过一个简单的例子来了解generator函数 {代码...} 数据交互 数据交互指的是可以通过yie...

js异步从入门到放弃(三)- 异步任务队列(task queues)

2019-05-09
阅读 5 分钟
8.7k
根据之前说过的evenloop模型,首先输出script start和script end没有什么问题;但是接下来却发现:先执行了Promise指定的callback而不是setTimeout的callback。-- Why?

浅谈 JS 防抖和节流

2019-03-07
阅读 4 分钟
315.5k
防抖和节流严格算起来应该属于性能优化的知识,但实际上遇到的频率相当高,处理不当或者放任不管就容易引起浏览器卡死。所以还是很有必要早点掌握的。(信我,你看完肯定就懂了)

webpack使用-详解DllPlugin

2018-09-29
阅读 4 分钟
23k
DLL(Dynamic Link Library)文件为动态链接库文件,在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。

前端构建工具整理

2018-08-10
阅读 4 分钟
5.4k
端技术范围不断发展,前端开发不仅限于直接编写html,css和javascript,Web应用日益庞大,代码也更加庞大,因此许多新的思想(例如模块化和工程化等)和框架(React和Vue等),以及新的语言(Es6 TypeScript)随之出现,而构建工具则承担起了中间的桥梁作用。

函数柯里化(curry)

2018-08-08
阅读 2 分钟
4.5k
apply的第一个参数为null时,this指向全局对象(忘记请自行查阅查mdn),在上面这个例子里,通过apply来应用函数的时候,效果和调用函数完全一致。

js设计模式(二)-工厂模式

2018-08-02
阅读 2 分钟
3.2k
工厂模式是指提供一个创建对象的接口而不保留具体的创建逻辑,可以根据输入类型创建对象。让子类自行决定实例化哪一种工厂类,实际的创建对象过程在子类中进行。在创建相似子类的时候,执行重复操作。(觉得我说的太抽象没关系,马上就到举例子环节)

快速实现一个简单的canvas迷宫游戏

2018-06-29
阅读 3 分钟
5.6k
(最近设计模式看的有点头大,一直面对纯js实在是有些枯燥-_-。所以写一点有趣的东西调剂一下)现在canvas已经不算新鲜了,不过由于日常业务中并不常用,所以实践并不多,今天分享一下,如何实现简单canvas迷宫。这个例子来源于《html5秘籍》第二版,代码有稍微做了点调整。

js设计模式(一)-单例模式

2018-06-25
阅读 4 分钟
9.8k
本文主要围绕js的设计模式进行展开,对每个设计模式从特征,原理和实现方式几个方面进行说明。由于内容较长,所以拆分成多篇文章。如果有不对的地方欢迎指出,阅读前请注意几点:

js代码常见技巧总结

2018-06-12
阅读 5 分钟
4.1k
(难得从繁重的业务代码中抽身,更新一下文章)前端框架和技术日益发展,但是不管怎么变,js永远都是最重要的基础,本文记录和总结一些日常开发中常见的js代码技巧和误区,不定期更新。

深入解析js中的函数

2018-01-11
阅读 8 分钟
4.8k
由于词语匮乏,本文继续沿用"深入解析xxx"这个俗套的命名,但是是真的很深入(你要信我啊)。如果本文对你有用,欢迎收藏,如果喜欢我的文章,欢迎点赞和关注专栏。函数可以说是js的基础,无处不在,功能又十分强大,本文将简单介绍函数的特点并且重点介绍各种各样的用法。废话不多说,开车~友情提示,由于本文涵盖的内容...

解析js中的this对象

2018-01-04
阅读 3 分钟
5k
(几天之前写了源码分析之后,感觉太疲惫了,写一些相对轻巧的内容调剂一下,希望喜欢的同学可以点个赞和收藏~)进入正题,this对象在js中是很常见,但是在这里也经常会出错,本文将对常见的this对象的情况做一些总结

详解js深浅复制

2017-03-26
阅读 3 分钟
10.3k
在之前写继承的过程谈到了深浅复制的问题,因为有读者反映到需要解析,趁今天周末写一篇解析,今天的主体相对之前来说理解难度低一些,篇幅可能也比较短,诸君按需阅读即可。