leetCode刷题记录-链表 发表于 2021-11-26 | 分类于 算法 , 刷题记录 , 链表 206.反转链表 -简单迭代方法使用迭代方法,我可以做出来,但是不太完美,代码不够精简 自己的代码12345678910111213141516var reverseList = function(head) { if(!head){ // 这 ... 阅读全文 »
算法/leetcode刷题记录/字符串 发表于 2021-11-26 5.最长回文子串要点在于分情况统计 123456789101112131415161718192021222324252627282930313233343536373839404142434445var longestPalindrome = function(s) { if ... 阅读全文 »
leetCode刷题记录-链表 发表于 2021-11-26 | 分类于 算法 , 刷题记录 , 数据结构设计 146.LRU缓存算法运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。 1234567891011实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关 ... 阅读全文 »
leetCode刷题记录-单调队列 发表于 2021-11-26 | 分类于 算法 , 刷题记录 , 单调队列 239. 滑动窗口最大值给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 123456789101112131415示例 1:输入:nums = [1,3 ... 阅读全文 »
leetCode刷题记录-单调栈 发表于 2021-11-26 | 分类于 算法 , 刷题记录 , 单调栈 单调栈实际上就是栈,只是利用了一些巧妙的逻辑,使得每次新元素入栈后,栈内的元素都保持有序(单调递增或单调递减)。 听起来有点像堆(heap)?不是的,单调栈用途不太广泛,只处理一种典型的问题,叫做 Next Greater Element。 先来一道基础题1234给一个数组,返回一个大小相同的数组。 ... 阅读全文 »
算法/leetcode刷题记录/二叉树遍历 发表于 2021-11-26 title: 二叉树遍历categories: 算法 刷题记录tags: 算法 二叉树 常规遍历优秀题解 递归递归的代码很简单 前序 中左右这种写法其实不好,容易让人误解,return res 会被执行好多次 123456789var preorderTraversal = fun ... 阅读全文 »
leetCode刷题记录-链表 发表于 2021-11-26 | 分类于 算法 , 刷题记录 , 二分法 关于二分查找,可以看labuladong,或者是极客王铮的算法课15 16 王铮总结的左右边界 要比公众号好记的多 704.二分查找 基础题最基础的一个二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目 ... 阅读全文 »
浏览器原理 发表于 2021-11-26 | 分类于 浏览器原理 chrome架构打开一个chrome网页,如图所示会出现很多线程 首先需要讲解一下 进程和线程 进程和线程 一个进程就是一个程序的运行实例 线程是不能单独存在的,它是由进程来启动和管理的 线程是依附于进程的,而进程中使用多线程并行处理能提升运算效率 总结来说,进程和线程之间的关系有以下 4 ... 阅读全文 »
常用手写函数 发表于 2021-11-26 | 分类于 面试 call函数123456789101112Function.prototype.selfCall = function(context) { const ctx = context || window; // 去除第一个参数 const arg ... 阅读全文 »
diff算法 发表于 2021-11-26 | 分类于 vue 转载至 blogdiff 算法 也可以参考掘金小册 目录 前言 virtual dom 分析diff 总结 前言vue2.0加入了virtual dom,有向react靠拢的意思。vue的diff位于patch.js文件中,我的一个小框架aoy也同样使用此算法,该算法来源于snabbdom,复杂度 ... 阅读全文 »