惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
I
InfoQ
Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Recent Announcements
Recent Announcements
GbyAI
GbyAI
爱范儿
爱范儿
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
美团技术团队
罗磊的独立博客
Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网
M
MIT News - Artificial intelligence
D
Docker
MongoDB | Blog
MongoDB | Blog
F
Fortinet All Blogs
博客园 - 叶小钗

LINUX DO - 最新话题

谷歌云盘下载700g数据集,求方法 OpenAI推出了100美元的Pro订阅后,plus的Codex 5小时限额大幅缩水 之前买的super grok居然还没掉 关于CPA认证文件周限 佬们,默认CDK的要求是什么等级啊? 最新版本的微信群聊机器人方案 有没有人知道如何free号没有封,那么是否可以循环使用,因为我看主要是周限 L站改版了?吓我一跳,我以为我浏览器崩了 淘宝这种宽带可信吗,500兆移动宽带月费8元到2099年 docker内部应用访问宿主机mysql和redis时被拒绝connection refuse Erp全栈想转行做Ai有什么推荐的吗 boost有bug 佬们,有没有靠谱点的 Plus 购买渠道 大妈,狗妈用的 lg 服务有源头开源项目吗? 有人有能过验证码打码的嘛 上次帖里好像发过通过大模型来打码的 gpt plus 封号似乎也太快了点,一天就给封号了 按流量/token收费的国产官方AI推荐 我算是知道了为什么Oracle总是ABC了 佬友们帮我分析一下 ChatGPT Team账号只有一个人使用和4个席位邀请满了使用的总额度是一样的吗? gpt-free 10个带rt CPA反代claude是默认1m吗? 我终于敢说我做出来windows上tmux的替代了,目标windows/全平台最强的终端Ai编程工具 claude pro升级max,除了原来的$20,好像还能再领一次$100 关于AI agent的知识框架 独乐乐不如众乐乐,分享一下我的的AI对话程序 佬们自建网站支付问题是怎么解决的 怎么能让gpt模仿claude风格输出 codex free已经死了,下一个会是plus或者team吗 请问chatgpt pro里的fast模式,速度快了,降智吗
Leetcode每日一题 —— 2130. 链表最大孪生和
SomeBottle · 2026-06-14 · via LINUX DO - 最新话题

思路

首先容易想到的是可以用快慢指针,把链表用一趟扫描截成两半。用栈来存储翻转后的前半段链表然后进行成对求和。

进一步,可以不需要线性额外空间,原地用头插法构造前半段链表翻转后的链表即可。


代码

链栈(常数额外空间):

class Solution {
public:
    int pairSum(ListNode* head) {
        // 链表节点数为偶数
        // 快慢指针找中间点
        ListNode *slow=head,*fast=head;
        ListNode *rev=nullptr; // 前半段逆转的链表
        while(fast!=nullptr){
            ListNode* sNext=slow->next;
            ListNode* fNext=fast->next;
            slow->next=rev; // 头插法构成栈
            rev=slow;
            slow=sNext;
            fast=fNext;
            if(fast!=nullptr){
                fast=fast->next;
            }
        }
        int res=0;
        while(slow!=nullptr){
            res=max(res,rev->val+slow->val);
            rev=rev->next;
            slow=slow->next;
        }
        return res;
    }
};

用了线性额外空间:

class Solution {
public:
    int pairSum(ListNode* head) {
        // 链表节点数为偶数
        // 快慢指针找中间点
        ListNode *slow=head,*fast=head;
        vector<int> stk;
        while(fast!=nullptr){
            stk.emplace_back(slow->val);
            slow=slow->next;
            fast=fast->next;
            if(fast!=nullptr){
                fast=fast->next;
            }
        }
        int res=0;
        while(slow!=nullptr){
            res=max(res,stk.back()+slow->val);
            stk.pop_back();
            slow=slow->next;
        }
        return res;
    }
};

HuangXiang (YaoHuayong) 2

第一次在l站看到跟算法相关的贴,hhh,古法永远不死 :100: