手写实现
合并区间
var merge = function(intervals) {
intervals.sort((p, q) => p[0] - q[0]); // 按照左端点从小到大排序
const ans = [];
for (const p of intervals) {
const m = ans.length;
if (m && p[0] <= ans[m - 1][1]) { // 可以合并
ans[m - 1][1] = Math.max(ans[m - 1][1], p[1]); // 更新右端点最大值
} else { // 不相交,无法合并
ans.push(p); // 新的合并区间
}
}
return ans;
};Promise.finally
Promise.prototype.finally = function (callback) {
return this.then((data) => {
return Promise.resolve(callback()).then(() => data); // data 上一个promise的成功态
}, err => {
return Promise.resolve(callback()).then(() => {
throw err; // 把之前的失败的err,抛出去
});
})
}接雨水
无重复最大子串
三数之和
翻转列表(part)
防抖
节流
浅拷贝 & 深拷贝
浅拷贝
深拷贝
获取页面 URL

交集 并集 差集
千分位数字
判断对象是否为空
传入 [1,[[2],3,4],5] ,返回 [1,2,3,4,5]
16 进制转 rgb
实现 sleep
生成 N 个范围在 (min, max) 中的数
拆分查询参数
去掉字符串前后的空格
三数之和,双指针
环形链表
二叉树公共祖先
层序构建二叉树
快排
归并排序
ES5 继承
异步加法
手写 new
手写实现 bind
Last updated