摘要: 1.数组去重 let arr = [1,2,3,4,5,4,3,2,1], arr2 = [4,5,6,5,6]; // 1.数组去重 let res = [...new Set(arr)]; console.log(res); 2.交集 // 2.交集 let res = [...new Set( 阅读全文
posted @ 2021-09-25 22:59 jerryfish 阅读(87) 评论(0) 推荐(0) 编辑
摘要: js异步编程学习生成器很好的例子用生成器不写成回调地狱的形式 例1.用生成器实现一个1s后控制台输出111,再2s后控制台输出222,再3s后控制台输出333 function one(){ setTimeout(()=>{ console.log(111); iterator.next(); }, 阅读全文
posted @ 2021-09-25 22:33 jerryfish 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 技巧 1. 通过一些测试用例可以节省您的时间。 使用链表时不易调试。因此,在编写代码之前,自己尝试几个不同的示例来验证您的算法总是很有用的。 2. 你可以同时使用多个指针。 有时,当你为链表问题设计算法时,可能需要同时跟踪多个结点。您应该记住需要跟踪哪些结点,并且可以自由地使用几个不同的结点指针来同 阅读全文
posted @ 2021-09-22 17:23 jerryfish 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 707. 设计链表 单链表 class MyLinkedList { constructor () { this.data = null } // 获取链表中第 index 个节点的值。如果索引无效,则返回-1 get (index) { let curr = this.data for (let 阅读全文
posted @ 2021-09-22 16:25 jerryfish 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 1. 在调用 next 字段之前,始终检查节点是否为空。 获取空节点的下一个节点将导致空指针错误。例如,在我们运行 fast = fast.next.next 之前,需要检查 fast 和 fast.next 不为空。 2. 仔细定义循环的结束条件。 141. 环形链表 var hasCycle = 阅读全文
posted @ 2021-09-22 16:07 jerryfish 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 这种求和找下标数组的算法题本质上都是可以转化为把数组排序以后的双指针问题。 不管求几个数字之和都是转化为最后两个数的和用一个值来比较然后移动指针确定位置。 leetcode167. 两数之和 II - 输入有序数组 var twoSum = function(numbers, target) { l 阅读全文
posted @ 2021-09-20 11:58 jerryfish 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 该算法可以被描述为这样一个结论:记 f(x) 表示 x 和 x-1 进行与运算所得的结果(即 f(x)=x & (x−1)),那么f(x) 恰为 x 删去其二进制表示中最右侧的 1 的结果。 leetcode 461. 汉明距离 var hammingDistance = function(x, y 阅读全文
posted @ 2021-09-18 10:56 jerryfish 阅读(885) 评论(0) 推荐(0) 编辑
摘要: var关键字 var声明作用域 var变量提升 let声明 let声明的范围是块作用域,而var声明的范围是函数作用域 暂时性死区 let声明的变量不会在作用域中被提升 全局声明 var声明的变量会变成window对象的属性,而let不会 条件声明 let不能依赖条件声明模式 for循环中的let声 阅读全文
posted @ 2021-09-17 18:12 jerryfish 阅读(50) 评论(0) 推荐(0) 编辑
摘要: js按值传递 阅读全文
posted @ 2021-09-17 17:50 jerryfish 阅读(45) 评论(0) 推荐(0) 编辑