零 题目:算法(leetode,附思维导图 + 全副解法)300 题之(2130)链表最大孪生和
一 题目形容
二 解法总览(思维导图)
三 全副解法
1 计划 1
1)代码:
// 计划 1“化归法(即 把不相熟的变成相熟的、简单的变成简略的,如 这里先将链表 转换成 数组)”。// 技巧:原输出为链表能够思考将其转换成数组,因为链表的增、删操作便捷,但按索引地位查问(数组便捷)操作不便捷!// 思路:// 1)状态初始化:resList = [], resMax = Number.NEGATIVE_INFINITY。// 2)外围 1:遍历 链表,将每个节点值 顺次 存入数组 resList 中。// 3)外围 2:遍历 resList 的前半部分,求得每个 孪生和(即 tempSum)。// 3.1)更新 resMax,resMax = Math.max(resMax, tempSum)。// 4)返回后果 resMax。var pairSum = function(head) {// 1)状态初始化:resList = [], resMax = Number.NEGATIVE_INFINITY。let resList = [],
resMax = Number.NEGATIVE_INFINITY;
// 2)外围 1:遍历 链表,将每个节点值 顺次 存入数组 resList 中。while (head) {resList.push(head.val);
head = head.next;
}
// 3)外围 2:遍历 resList 的前半部分,求得每个 孪生和(即 tempSum)。const l = resList.length;
for (let i = 0; i < Math.floor(l / 2); i++) {const tempSum = resList[i] + resList[l - i - 1];
// 3.1)更新 resMax,resMax = Math.max(resMax, tempSum)。resMax = Math.max(resMax, tempSum);
}
// 4)返回后果 resMax。return resMax;
};
2 计划 2
1)代码:
// 计划 2“快慢指针 + 双指针 法”。// 参考:// 1)https://leetcode-cn.com/problems/maximum-twin-sum-of-a-linked-list/solution/shuang-zhou-sai-di-69chang-leetcode5961l-rals/
// 思路:// 1)状态初始化:slow = head, fast = head, resSum = Number.NEGATIVE_INFINITY。// 2)外围 1:通过 快慢指针,寻找链表中点。// 3)外围 2:反转后半局部的链表。// 4)外围 3:通过 双指针,计算所有的孪生和(即 tempSum)。// 5)返回后果 resSum。var pairSum = function(head) {
// 1)状态初始化:slow = head, fast = head, resSum = Number.NEGATIVE_INFINITY。let slow = head,
fast = head,
resSum = Number.NEGATIVE_INFINITY;
// 2)外围 1:通过 快慢指针,寻找链表中点。while (fast !== null && fast.next !== null) {
fast = fast.next.next;
slow = slow.next;
}
// 3)外围 2:反转后半局部的链表。let cur = slow,
pre = null;
while (cur !== null) {
let tempNode = cur.next;
cur.next = pre;
pre = cur;
cur = tempNode;
}
// 4)外围 3:通过 双指针,计算所有的孪生和(即 tempSum)。while (head !== null && pre !== null) {
// 4.1)依据状况,更新 resSum 值(从 resSum、tempSum 中取最大值)。const tempSum = (head.val + pre.val);
resSum = Math.max(resSum, tempSum);
head = head.next;
pre = pre.next;
}
// 5)返回后果 resSum。return resSum;
}
四 资源分享 & 更多
1 历史文章 – 总览
2【资源分享】算法通关 + 面试宝典算法通关 + 面试宝典
1)算法通关 40 讲(极客 - 外企大佬讲的):链接: https://pan.baidu.com/s/1C175QEmcAunjnCzYzoLBz 提取码: hjna
2)动静布局专题(价值几百美刀~):https://www.bilibili.com/video/BV1nt4y1Y7nz
3)前端面经:3.1)https://www.nowcoder.com/tutorial/96
3.2)https://muyiy.cn/question
3.3)https://hub.fastgit.org/haizlin/fe-interview/blob/master/category/history.md
注:若生效请返回 VX 公众号:码农三少,发送关键字:LeetCode 或 算法,即可获取最新的链接~
3 博主简介
码农三少,一个致力于编写 极简、但齐全题解(算法 )的博主。
专一于 一题多解、结构化思维,欢送一起刷穿 LeetCode ~