随笔分类 - Leetcode-javascript
摘要:138. 随机链表的复制 138.复制带随机指针的链表 0:45:56 var copyRandomList = function(head) { if(!head) return null; //创建两个指针,一个指向头节点 let p=head,q; //遍历整个链表,复制每个节点,并将值全部复
阅读全文
摘要:86. 分隔链表 /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val undefined ? 0 : val) * this.next = (next undefine
阅读全文
摘要:82. 删除排序链表中的重复元素 II 1:49:16 /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val undefined ? 0 : val) * this.ne
阅读全文
摘要:83. 删除排序链表中的重复元素 1:37:19 /** * @param {ListNode} head * @return {ListNode} */ var deleteDuplicates = function(head) { if(!head) return null; let pre=h
阅读全文
摘要:function ListNode(val, next) { this.val = (val undefined ? 0 : val) this.next = (next undefined ? null : next) } /** * Definition for singly-linked li
阅读全文
摘要:24. 两两交换链表中的节点 0:58:19 function ListNode(val, next) { this.val = (val undefined ? 0 : val) this.next = (next undefined ? null : next) } /** * @param {
阅读全文
摘要:61 旋转链表 /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val undefined ? 0 : val) * this.next = (next undefined
阅读全文
摘要:LeetCode-25 K个一组反转链表 1:52:03 /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val undefined ? 0 : val) * this.n
阅读全文
摘要:var reverseBetween = function(head, left, right) { if(!head)return null; let ret=new ListNode(-1,head),pre=ret,cnt=right-left+1; while(--left){ pre=pr
阅读全文
摘要:206. 反转链表 1:17:41 /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val undefined ? 0 : val) * this.next = (next
阅读全文
摘要:/** * @param {number} n * @return {boolean} */ var isHappy = function(n) { let pre=n,cur=getNext(n); while(cur!==pre && cur!==1){ pre=getNext(pre) cur
阅读全文
摘要:var detectCycle = function(head) { if(!head)return null; let pre=head,cur=head; while(cur&&cur.next){ pre=pre.next; cur=cur.next.next; if(pre cur){ le
阅读全文
摘要:685.冗余连接 4:03 // 定义并查集类 class UnionFind{ // 构造函数初始化并查集 constructor(n){ this.parent = new Array(n).fill(0).map((item,index)=>index) this.rank = new Arr
阅读全文
摘要:765.情侣牵手 3:32 //遍历row数组,每次都去取出来两个人,我们知道正常的情侣他的编号从0开始的 //一堆正确的情侣就是一个是偶数一个是奇数;并且奇数=偶数+1;和奇数/2.==偶数/2;这个时候才是情侣;否则就需要将两个编号除以2之后的结果进行联通,进行交换次数: //当N-1对配对成功
阅读全文
摘要:721.账户合并 2:19:44 // 定义并查集类 class UnionFind{ // 构造函数初始化并查集 constructor(n){ this.parent = new Array(n).fill(0).map((item,index)=>index) this.rank = new
阅读全文
摘要:1202.交换字符串中的元素 1:42 1交换 2.按着字典序排序 3.拼接字符串 1.根据这个二维数组pairs,获取可以交换的字母,然后可以交换的字母组成一组。 2.对组内的字母进行排序。 3.接着根据字符串中组号获取我们组内最小的字符进行拼接。最后得到的字符串就是我们所需要的进行排过序的字符串
阅读全文
摘要:947.移除最多的同行或同列石头 0:46:04 //1,要求每个石头横纵坐标上除了本身外,不能存在其他的石头。我们可以把同一个横坐标/竖坐标上的石头看作是一个联通的; //2,每次获取两个石头的坐标(x,y),然后进行判断,如果两块石头处于同一个横坐标/竖坐标,我们就进行合并,直到遍历完整个数组;
阅读全文
摘要:思路:数字必须是连起来的,间隔必须是1,最长的连起来的数字有多长,把这个长度返回 1.先从数组里面取出一个数,n判断n-1是否存在:如果存在,接着判断n-2是否存在:接着判断,直到n-x不存在,就到了我们数组的最前面:那么这个时候 从x 到n这个区间,就是前面最长的数字长度;接着判断 n+1是存在的
阅读全文
摘要:1319.连通网络的操作次数 2:24 // 定义并查集类 class UnionFind{ // 构造函数初始化并查集 constructor(n){ this.parent = new Array(n).fill(0).map((item,index)=>index) this.rank = n
阅读全文
摘要:684.冗余连接 2:10 // 定义并查集类 class UnionFind{ // 构造函数初始化并查集 constructor(n){ this.parent = new Array(n).fill(0).map((item,index)=>index) this.rank = new Arr
阅读全文

浙公网安备 33010602011771号