![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
双指针
良良2号
小时候真傻,居然盼着长大。
展开
-
大数的加法
大数加法 思路 列小学竖式,从后往前(个位,十位,百位...)计算。 双指针 代码 /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ function solve( s , t ) { let res = []; let i = s.length - 1;原创 2021-09-03 17:42:52 · 54 阅读 · 0 评论 -
寻找两个链表的公共节点
寻找两个链表的公共节点 思路 双指针:最简单的方法可以两层循环,复杂度为O(mn); 同样是双指针,可以将复杂度降为O(m+n); 让两个指针走完自己的链表后,再走对方的。 代码 /*function ListNode(x){ this.val = x; this.next = null; }*/ function FindFirstCommonNode(pHead1, pHead2) { let p = pHead1; let q = pHead2; whi原创 2021-09-03 17:38:22 · 214 阅读 · 0 评论 -
删除链表的倒数第n个节点
删除链表的倒数第n个节点 思路 快慢指针:让快指针先走n-1步,然后快慢指针同时走,当快指针走到链表末尾时,慢指针则指向倒数第n个节点。 代码 /* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * * @param head ListNode类 * @param n int整型 * @return ListNode类 */ // 快慢指针,让快指针先走n-1步原创 2021-08-26 16:22:42 · 50 阅读 · 0 评论 -
合并有序数组
合并有序数组 思路 双指针:分别指向两个数组的最大元素,从中选择较大的那个放入nums1的末尾。 代码 /** * * @param A int整型一维数组 * @param B int整型一维数组 * @return void */ function merge( nums1, m, nums2, n ) { let p1 = m - 1, p2 = n - 1; let tail = m + n - 1; var cur; while (p1 >原创 2021-08-25 21:24:23 · 108 阅读 · 0 评论 -
判断链表的环
链表是否有环 思路 快慢指针:慢指针走一步,快指针走两步。有环快慢指针定会相遇,无环则快指针定能走到终点。 代码 /* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * * @param head ListNode类 * @return bool布尔型 */ function hasCycle( head ) { // write code here let f原创 2021-08-25 21:03:07 · 58 阅读 · 0 评论