franki Blog

make a small progress every day

leetcode 1381题

leetcode 1381题 设计一个支持增量操作的栈 请你设计一个支持下述操作的栈。 实现自定义栈类 CustomStack : CustomStack(int maxSize):用 maxSize 初始化对象,maxSize 是栈中最多能容纳的元素数量,栈在增长到 maxSize 之后则不支持 push 操作。 void push(int x):如果栈还未增长到 maxSize ,...

leetcode 821题

leetcode 821题 字符的最短距离 给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。 示例 1 输入: S = “loveleetcode”, C = ‘e’ 输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0] 说明: 字符串 S 的长度范围为 [1, 10000]。 C 是一个...

leetcode 268题

leetcode 268题 缺失数字 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 进阶: 你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题? 示例 1 输入:nums = [3,0,1] 输出:2 解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数...

leetcode 66题

leetcode 66题 加一 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2 输入: [4,3,2,1] 输出: [4,3,2,2] 解释...

leetcode 数组

数组 数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 首先,数组会利用 索引 来记录每个元素在数组中的位置,且在大多数编程语言中,索引是从 0 算起的。我们可以根据数组中的索引,快速访问数组中的元素。事实上,这里的索引其实就是内存地址。 其次,作为线性表的实现方式之一,数组中的元素在内存中是 连续 存储的,且每个元素占用相同大小的内存。 ...

5月-10月复盘

好久不见 long long ago! 距离上次更新博客,已经是5月份的事情了,事出有因,下面总结这段时间的一些行动、感悟。 5月15号,从 mk 辞职,5月18号,来到 sf,做出这个决定的时候,的确有点困难! 从 mk 离职 在 mk,有很多很棒的小伙伴,经常一起开玩笑、一起讨论问题,还有时不时的下午4点半(当然不是很经常啦!)。但是天下没有不散的宴席,人各有志,自己也经...

从零到一实现一个简易版的webpack

webpack 在 webpack 出来之前,让我们来看看前端打包构建的黑历史(不堪回首的年代)。 其实前端一开始并不存在打包构建的这种“玩意”的,js 一开始也是被人忽视的,简单的认为只是用来写写页面动效,仅此而已!那时候甚至连 ajax 都不用,直接写点代码,直接用 script 标签引入。人们通常“乐此不疲”。 直到 ajax 的广泛引用,才使得 js 变得越来越重要,前...

实现一个babel插件

进入es6时代,大家都知道有很多浏览器是不支持es6代码的,但是为啥可以打包出来的代码可以跑在浏览器上呢?相信大家有会说用babel-loader转义,把es6代码转化成浏览器认识的es5代码,可是大家都知道babel是如何转化es6代码的吗?里面究竟发生了什么不可告人的秘密,今天就好好探索下。 开宗明义,先来讲下babel的核心原理: Babel 解析成 AST,然后插件更改 A...

async await实现原理

async await 原理 接上篇的generator,async await在generator基础上,继续推进异步使用的历史。 先说结论,async await的出现使得异步处理变得如鱼得水,写异步代码就像写同步代码一样简单,真的很感谢大佬们的智慧,不断创造新轮子,让我这种搬运工不断减少工作量,既然能力未到大佬们的位置,只能去观摩大佬们的实现,进入其里面一窥究竟。 functio...

Generator从使用到实现

最近事情有点多,博客已经减少到一个月一篇了,作为一个对于技术有持续追求的人来说,学无止境应该是每一个技术人的座右铭!应该像岳飞背上’精忠报国‘的四个大字一样,时刻警示告知自己,再忙也不能忘记给自己充电。不过无论如何,饭还得一口一口吃,不能一口气吃成一个大胖子。 终于可以写一篇关于 generator 的文章,这个东西一直困扰太久太久,从2016年接触 es6 开始,看到 generator...