每日一题(LeetCode)----链表--链表最大孪生和
每日一题(LeetCode)----链表–链表最大孪生和
1.题目(2130. 链表最大孪生和)
-
在一个大小为
n且n为 偶数 的链表中,对于0 <= i <= (n / 2) - 1的i,第i个节点(下标从 0 开始)的孪生节点为第(n-1-i)个节点 。- 比方说,
n = 4那么节点0是节点3的孪生节点,节点1是节点2的孪生节点。这是长度为n = 4的链表中所有的孪生节点。
孪生和 定义为一个节点和它孪生节点两者值之和。
给你一个长度为偶数的链表的头节点
head,请你返回链表的 最大孪生和 。示例 1:

输入:head = [5,4,2,1] 输出:6 解释: 节点 0 和节点 1 分别是节点 3 和 2 的孪生节点。孪生和都为 6 。 链表中没有其他孪生节点。 所以,链表的最大孪生和是 6 。示例 2:

输入:head = [4,2,2,3] 输出:7 解释: 链表中的孪生节点为: - 节点 0 是节点 3 的孪生节点,孪生和为 4 + 3 = 7 。 - 节点 1 是节点 2 的孪生节点,孪生和为 2 + 2 = 4 。 所以,最大孪生和为 max(7, 4) = 7 。示例 3:

输入:head = [1,100000] 输出:100001 解释: 链表中只有一对孪生节点,孪生和为 1 + 100000 = 100001 。提示:
- 链表的节点数目是
[2, 105]中的 偶数 。 1 <= Node.val <= 105
- 比方说,
2.解题思路
思路一
将链表的后一半进行反转,然后将链表的前一半和后一半进行相加,通过比较得到结果
1.找到链表的后一半的起始节点
我们先计算出整个链表的长度,然后用一个指针指向链表表头,向后走整个链表的一半长度,得到链表后一半的表头
2.进行反转
通过头,拿,断这三个指针实现反转
3.定义一个存结果的变量,将反转后的后一半链表与原链表的前一半进行相加(这里思路一和思路二实现方式不一样,但是都差不多),然后每求出一个值,就和存结果的变量进行比较,如果大于,就把存结果的变量进行更新,如果不大于,就不进行更新
思路二:思路二和思路一一样就是实现的方法不同
1.找到链表的后一半的起始节点
我们使用快慢指针找出后一半部分的起始节点。我们用慢指针和快指针同时指向 头节点,然后,我们每次将慢指针向后移动一个节点,同时快指针向后移动两个节点。当 快指针指向空结点时,慢指针就刚好指向链表了后一半部分的首节点
2.进行反转
通过头,拿,断这三个指针实现反转
3.定义一个存结果的变量,将反转后的后一半链表与原链表的前一半进行相加(这里思路一和思路二实现方式不一样,但是都差不多),然后每求出一个值,就和存结果的变量进行比较,如果大于,就把存结果的变量进行更新,如果不大于,就不进行更新
3.写出代码
思路一的代码
class Solution {
public:int pairSum(ListNode* head) {int length1=0;ListNode* Temp=head;while(Temp){length1++;Temp=Temp->next;}int length2=length1/2;int t=length2;Temp=head;while(t--){Temp=Temp->next;}ListNode* head2=NULL;ListNode* na=Temp;ListNode* duan=Temp->next;while(duan){na->next=head2;head2=na;na=duan;duan=duan->next;}na->next=head2;head2=na;int res=-1;for(int i=0;i<length2;i++){res=max(head->val+head2->val,res);head=head->next;head2=head2->next;}return res;}
};
思路二的代码
class Solution {
public:int pairSum(ListNode* head) {ListNode* fast=head;ListNode* slow=head;while(fast){slow=slow->next;fast=fast->next->next;}ListNode* head2=NULL;ListNode* na=slow;ListNode* duan=slow->next;while(duan){na->next=head2;head2=na;na=duan;duan=duan->next;}na->next=head2;head2=na;int res=-1;while(head2){res=max(head->val+head2->val,res);head2=head2->next;head=head->next;}return res;}
};
相关文章:
每日一题(LeetCode)----链表--链表最大孪生和
每日一题(LeetCode)----链表–链表最大孪生和 1.题目(2130. 链表最大孪生和) 在一个大小为 n 且 n 为 偶数 的链表中,对于 0 < i < (n / 2) - 1 的 i ,第 i 个节点(下标从 0 开始)的孪生节点为第 (n…...
腾讯云轻量服务器通过Docker搭建外网可访问连接的redis5.x集群
原创/朱季谦 最近买了一台4核16的腾讯云轻量应用服务器,花了我快四百的大洋,打算搭建一堆docker组件集群,最先开始是通过docker搭建redis集群,计划使用三个端口,分别是7001,7002,7003。 腾讯云服务器有防火墙限制,故…...
C++学习之路(十一)C++ 用Qt5实现一个工具箱(增加一个进制转换器功能)- 示例代码拆分讲解
上篇文章,我们用 Qt5 实现了在小工具箱中添加了《时间戳转换功能》功能。为了继续丰富我们的工具箱,今天我们就再增加一个平时经常用到的功能吧,就是「 进制转换 」功能。下面我们就来看看如何来规划开发一个这样的小功能并且添加到我们的工具…...
C语言每日一题(40)栈实现队列
力扣232 用栈实现队列 题目描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并…...
Vue.js 的生命周期
Vue.js 的生命周期钩子函数是一组在 Vue 实例生命周期中执行的函数,它们允许你在特定阶段执行自定义逻辑。以下是 Vue.js 的生命周期钩子函数以及它们在生命周期中的执行时机: 1、beforeCreate: 在实例初始化之后,数据观测 (data observer)…...
SeaTunnel引擎下的SQL Server CDC解决方案:构建高效数据管道
在快速发展的数据驱动时代,实时数据处理已经成为企业决策和运营的关键因素。特别是在处理来自各种数据源的信息时,如何确保数据的及时、准确和高效同步变得尤为重要。本文着重介绍了如何利用 SqlServer CDC 源连接器在 SeaTunnel 框架下实现 SQL Server …...
【攻防世界-misc】Encode
1.下载解压文件,打开这个内容有些疑似ROT13加密,利用在线工具解密:ROT13解码计算器 - 计算专家 得到了解密后的值 得到解码结果后,看到是由数字和字母组成,再根据题目描述为套娃,猜测为base编码(…...
visual c++ 2019 redistributable package
直接安装下面包只有24M Microsoft Visual C Redistributable 2019 x86: https://aka.ms/vs/16/release/VC_redist.x86.exe x64: https://aka.ms/vs/16/release/VC_redist.x64.exe ———————————————— 版权声明:本文为CSDN博主「kpacnB_Z」的原创文章…...
WPF中DataGrid解析
效果如图: 代码如下: <DataGrid Grid.Row"1" x:Name"dataGrid" ItemsSource"{Binding DataList}" AutoGenerateColumns"False"SelectedItem"{Binding SelectedItem,UpdateSourceTriggerPropertyChange…...
在数据库中进行表内容的修改(MYSQL)
根据表中内容,用命令语句创建数据库,表格,以及插入,修改,删除表格中的内容。 创建数据库:zrzy mysql> create database zrzy; 引用zrzy数据库: mysql> use zrzy; 创建student_info表&…...
Android中的多进程
在Android中也可以像pc一样开启多进程,这在android的编程中通常是比较少见的,以为在一个app基本上都是单进程工作就已经足够了,有一些特殊的场景,我们需要用多进程来做一些额外的工作,比如下载工作等。 在Android的An…...
Apache2.4 AliasMatch导致301重定向问题?
环境:ubuntu18.04-desktop apache2版本: rootubuntu:/etc/apache2# apache2ctl -v Server version: Apache/2.4.29 (Ubuntu) Server built: 2023-03-08T17:34:33apache配置: DocumentRoot /var/www/html # Alias就没事 # Alias "/my…...
广州华锐视点:基于VR元宇宙技术开展法律法规常识在线教学,打破地域和时间限制
随着科技的飞速发展,人类社会正逐渐迈向一个全新的时代——元宇宙。元宇宙是一个虚拟的、数字化的世界,它将现实世界与数字世界紧密相连,为人们提供了一个全新的交流、学习和娱乐平台。在这个充满无限可能的元宇宙中,法律知识同样…...
Maven——Maven使用基础
1、安装目录分析 1.1、环境变量MAVEN_HOME 环境变量指向Maven的安装目录,如下图所示: 下面看一下该目录的结构和内容: bin:该目录包含了mvn运行的脚本,这些脚本用来配置Java命令,准备好classpath和相关…...
U4_2:图论之MST/Prim/Kruskal
文章目录 一、最小生成树-MST生成MST策略一些定义 思路彩蛋 二、普里姆算法(Prim算法)思路算法流程数据存储分析 伪代码时间复杂度分析 三、克鲁斯卡尔算法(Kruskal算法)分析算法流程并查集-Find-set 伪代码时间复杂度分析 一、最…...
springboot 注解@JsonInclude
修饰 实体属性or实体类 //枚举值:ALWAYS,NON_NULL,NON_ABSENT,NON_EMPTY,NON_DEFAULT,CUSTOM,USE_DEFAULTS JsonInclude(Include.NON_EMPTY)//将该标记放在属性上,如果该属性为NULL则不参与序列化 //如果放在类上边,那对这个类的全部属性起作用 Inclu…...
Python 中文完整教程目录
Python 教程 Python 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。 Python 官网(…...
C/C++---------------LeetCode第35. 搜索插入位置
插入的位置 题目及要求二分查找在main内使用 题目及要求 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: …...
网络安全--基于Kali的网络扫描基础技术
文章目录 1. 标准ICMP扫描1.1使用Ping命令1.1.1格式1.1.2实战 1.2使用Nmap工具1.2.1格式1.2.2实战1.2.2.1主机在线1.2.2.2主机不在线 1.3使用Fping命令1.3.1格式1.3.2实战 2. 时间戳查询扫描2.1格式2.2实战 3. 地址掩码查询扫描3.1格式3.2实战 2. TCP扫描2.1TCP工作机制2.2TCP …...
C语言——求π的近似值
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> #include<math.h> int main() {int s;double n,t,pi;t1;pi0;n1.0;s1;while (fabs(t)>1e-6){pipit; nn2; s-s; ts/n;}pipi*4;printf("pi%lf\n",pi);return 0; }这里是求小数点后6位——1e-6&#…...
P4561 [JXOI2018] 排序问题
题意 有一个序列,现在要在结尾加上 mmm 个 [l,r][l,r][l,r] 之间的数,求在所有方案中,猴子排序(每次随机一个排列,检查是否有序)的次数期望最大次数。 思路 假设最终的序列中数 iii 出现的次数是 cic_ici…...
深度解析DHCP协议:工作原理、4步交互流程及应用场景
深度解析DHCP协议:工作原理、4步交互流程及应用场景 摘要一、DHCP协议:基础定义1.1 DHCP协议:是什么1.2 DHCP协议:解决什么问题 二、DHCP协议:核心工作原理(4步标准流程)2.1 DHCP 4步交互流程图…...
加州大学洛杉矶分校、腾讯混元等推出Unify-Agent
这项由加州大学洛杉矶分校、腾讯混元、香港中文大学和香港科技大学联合研究团队发表于2026年3月的研究(arXiv:2603.29620v1),彻底改变了我们对AI图像生成的认知。想象一下,如果你请AI画一个不太知名的动漫角色或者某个地方的特色小…...
RDMA 核心原理:RoCE v2 与传输操作详解
一、RDMA原理操作 RDMA 传输符合 RoCE v2 协议 RDMA over Converged Ethernet (RoCE) 是一种网络协议,它利用远程直接内存访问 (RDMA) 功能来显着加速托管在服务器集群和存储阵列上的应用程序之间的通信。RoCE 结合了IBTARDMA 语义,允许设备在应用程序级…...
call、apply和bind的原理及使用场景
在JavaScript 中,call、apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到接花移木的效果 原理: 1、call(thisArgs [,args...]) 该方法可以传递一个thisArgs参数和一个…...
2.1SQL 学习:先懂数据库概念再学 SQL
2.1SQL 学习:先懂数据库概念再学 SQL 开篇:为什么学SQL前要先搞懂数据库概念 我入行第一年,领导丢给我一个数据库账号,说“去把昨天的订单数据查出来”。我打开Navicat,看到左边一长串陌生的表名,完全不知道…...
AMA-SAM:用于高保真组织学细胞核分割的对抗性多域对齐万物分割模型/文献速递-多模态医学影像最新进展
2026.4.8本文提出了AMA-SAM框架,通过引入条件梯度反转层(CGRL)实现鲁棒的多域对齐,并设计高分辨率解码器(HR-Decoder)以保留精细细节,从而增强了万物分割模型(SAM)在高分…...
QWEN-AUDIO企业落地:呼叫中心坐席辅助语音+实时话术情感匹配系统
QWEN-AUDIO企业落地:呼叫中心坐席辅助语音实时话术情感匹配系统 1. 呼叫中心智能化升级需求 现代呼叫中心正面临前所未有的挑战。传统模式下,客服人员需要同时处理客户咨询、记录信息、查找资料,还要保持专业友好的服务态度。这种高强度的工…...
智能语音转写效率工具:AsrTools解放你的音频处理工作流
智能语音转写效率工具:AsrTools解放你的音频处理工作流 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate…...
跨设备进度同步:多设备追番中断的智能解决方案——Kazumi无缝续播体验
跨设备进度同步:多设备追番中断的智能解决方案——Kazumi无缝续播体验 【免费下载链接】Kazumi 基于自定义规则的番剧采集APP,支持流媒体在线观看,支持弹幕,支持实时超分辨率。 项目地址: https://gitcode.com/gh_mirrors/ka/Ka…...
