刷题记录Day4(补)

 24. 两两交换链表中的节点

① 使用虚拟节点

② 最后返回头结点的时候,head 本来的头节点已经和第二位交换了,需要重新赋值

③ 使用临时指针保存变量

④ 如果是空的不用特殊判断,空的返回头节点也还是空的

class Solution {
public:ListNode* swapPairs(ListNode* head) {ListNode* dummyHead = new ListNode(0);dummyHead->next = head;ListNode* cur = dummyHead;while(cur->next != nullptr && cur->next->next != nullptr){ListNode* tmp = cur->next;ListNode* tmp1 = cur->next->next->next;cur->next = cur->next->next;cur->next->next = tmp;tmp->next = tmp1;cur = cur->next->next;}head = dummyHead->next;return head;}
};

19. 删除链表的倒数第 N 个结点

① 快慢指针,先让 fast 走 n 步,快指针和慢指针之间相差 n,然后两个指针同时走,fast 走到最后的时候,slow 就是倒数第 n 个

②fast 走了 n 以后,要再向前走一个,因为删除的时候,slow 需要指到删除节点的前一个

③ 使用虚拟头节点会更方便

class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {//虚拟头节点ListNode* dummy = new ListNode(0);dummy->next = head;ListNode* fast = dummy;ListNode* slow = dummy;//fast先走n步while(n-- && fast != nullptr){fast = fast->next;}//fast多走一步,这样slow就可以指向删除节点的上一个节点fast = fast->next;while(fast != nullptr){fast = fast->next;slow = slow->next;}slow->next = slow->next->next;return dummy->next;}
};

面试题 02.07. 链表相交

① 先计算链表长度然后使两个链表末尾对齐,再让指针走到同一个长度位置,开始逐一对比后边的节点是否是一样的

② 要考虑哪个链表更长的问题

③ 让长的链表的指针走到短的链表头节点位置的时候,走的是链表差值不是链表长度

④ 第一次计算链表长度的时候,最后指针记得要回头节点的位置

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode* cur1 = headA;ListNode* cur2 = headB;int lenA = 0;int lenB = 0;//计算链表长度while(cur1 != nullptr){lenA++;cur1 = cur1->next;}while(cur2 != nullptr){lenB++;cur2 = cur2->next;}cur1 = headA;cur2 = headB;//末尾对其if(lenA>lenB){for(int i=0; i<lenA - lenB;i++){cur1 = cur1->next;}}else{for(int i=0; i<lenB - lenA;i++){cur2 = cur2->next;}}while(cur1 != nullptr && cur2 != nullptr){if(cur1 == cur2){return cur1;}cur1 = cur1->next;  // 移动cur1cur2 = cur2->next;  // 移动cur2}return NULL;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/895665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

花西子携手赛博威共创新品创新平台,驱动“新质美力”高质量发展

国货彩妆品牌花西子与赛博威信息科技达成【新品创新平台】项目合作&#xff0c;共探“新质美力”的高质量发展路径。 近日&#xff0c;赛博威信息科技CEO陈国平携团队走进花西子“百年之诗”馆&#xff0c;深入了解花西子的品牌理念、企业文化及百年愿景&#xff0c;并与花西子…

[JVM篇]垃圾回收器

垃圾回收器 Serial Seral Old PartNew CMS(Concurrent Mark Sweep) Parallel Scavenge Parallel Old G1 ZGC

在VScode内接入deepseek(本地部署版包会)

目录 1. 首先得有vscode软件 2. 在我们的电脑本地已经部署了ollama&#xff0c;我将以qwen作为实验例子 3. 在vscode上的扩展商店下载continue 4. 下载完成后&#xff0c;依次点击添加模型 5. 在这里可以添加&#xff0c;各种各样的模型&#xff0c;选择我们的ollama 6. 选…

[题解]2024CCPC重庆站-小 C 的神秘图形

Sources&#xff1a;K - 小 C 的神秘图形Abstract&#xff1a;给定正整数 n ( 1 ≤ n ≤ 1 0 5 ) n(1\le n\le 10^5) n(1≤n≤105)&#xff0c;三进制字符串 n 1 , n 2 ( ∣ n 1 ∣ ∣ n 2 ∣ n ) n_1,n_2(|n_1||n_2|n) n1​,n2​(∣n1​∣∣n2​∣n)&#xff0c;按如下方法…

AI外呼机器人:营销新利器还是骚扰电话的升级版?

"您好&#xff0c;这里是XX房产&#xff0c;最近有购房需求吗&#xff1f;""您好&#xff0c;您最近有种牙需求吗&#xff1f;" 相信很多人都接到过类似的营销电话&#xff0c;而电话那头&#xff0c;很可能已经不是真人&#xff0c;而是AI外呼机器人。 近…

应对DeepSeek总是服务器繁忙的解决方法

最近由于访问量过大&#xff0c;DeepSeek服务器官网经常弹出&#xff1a;“服务器繁忙&#xff0c;请稍后再试”的提示&#xff0c;直接卡成PPT怎么办&#xff1f;服务器繁忙直接看到视觉疲劳&#xff1a; 解决DeepSeek卡顿问题 DeepSeek使用卡顿问题&#xff0c;是因为访问量…

游戏引擎学习第107天

仓库:https://gitee.com/mrxiao_com/2d_game_2 回顾我们之前停留的位置 在这段内容中&#xff0c;讨论了如何处理游戏中的三维效果&#xff0c;特别是如何处理额外的“Z层”。由于游戏中的艺术资源是位图而不是3D模型&#xff0c;因此实现三维效果变得非常具有挑战性。虽然可…

Spring Boot最新技术特性深度解析与实战应用

一、反应式编程:WebFlux与非阻塞架构 1.1 核心价值与场景 Spring Boot 2.x全面拥抱反应式编程模型,通过Spring WebFlux支持异步非阻塞的请求处理,适用于高并发、低延迟的微服务场景(如实时通信、物联网数据处理)。其基于Reactor库实现,采用事件循环模型,显著提升资源利…

2. 图片性能优化

图片性能优化 图片懒加载 如何判断图片出现在了当前视口 &#xff08;即如何判断我们能够看到图片&#xff09;如何控制图片的加载 原生实现 <img src"shanyue.jpg" loading"lazy" />loading"lazy" 延迟加载图像&#xff0c;直到它和视…

sql盲注脚本

在sqli-labs中的第8题无回显可以尝试盲注的手法获取数据 发现页面加载了3秒左右可以进行盲注 布尔盲注数据库名 import requestsdef inject_database(url):datanamefor i in range(1,15):low 32high 128mid (low high) // 2while low < high:path "id1 and asci…

文字识别产品、文档识别系统、表格识别API

文字识别技术让文字录入工作不再繁琐。人工智能时代&#xff0c;文字识别接口产品运用先进的光学字符识别与图像处理技术&#xff0c;衍生了一系列图像文字快速提取的应用场景。无论是扫描文件、照片文字还是PDF文档&#xff0c;文字识别接口都能轻松应对。支持对中文简体、中文…

Python 依赖管理的革新——Poetry 深度解析

引言 在 Python 生态中&#xff0c;依赖管理一直是开发者关注的重要话题。从最初的 pip 和 virtualenv&#xff0c;到后来的 pipenv&#xff0c;Python 依赖管理工具不断进化。而近年来&#xff0c;Poetry 作为一款集成包管理和虚拟环境管理的新兴工具&#xff0c;逐渐获得了广…

springcloud集成gateway

本篇文章只介绍gateway模块的搭建步骤&#xff0c;并无gateway详细介绍 gateway详解请查看&#xff1a;SpringCloudGateway官方文档详解 前置处理 父模块中已指定版本 不知道如何选择版本看这篇&#xff1a; 手把手教你梳理springcloud与springboot与springcloudalibaba的版本…

【Elasticsearch】文本分析Text analysis概述

文本分析概述 文本分析使 Elasticsearch 能够执行全文搜索&#xff0c;搜索结果会返回所有相关的结果&#xff0c;而不仅仅是完全匹配的结果。 如果你搜索“Quick fox jumps”&#xff0c;你可能希望找到包含“A quick brown fox jumps over the lazy dog”的文档&#xff0c…

建筑兔零基础自学python记录22|实战人脸识别项目——视频人脸识别(下)11

这次我们继续解读代码&#xff0c;我们主要来看下面两个部分&#xff1b; 至于人脸识别成功的要点我们在最后总结~ 具体代码学习&#xff1a; #定义人脸名称 def name():#预学习照片存放位置path M:/python/workspace/PythonProject/face/imagePaths[os.path.join(path,f) f…

二〇二四年终总结

写在前面 简单总结一下告诉自己&#xff0c;曾经活着 不必太纠结于当下&#xff0c;也不必太忧虑未来&#xff0c;当你经历过一些事情的时候&#xff0c;眼前的风景已经和从前不一样了。——村上春树 原本应该 24 年年中的时候写 23 年年终的总结&#xff0c;但是一直拖着&…

LabVIEW太阳能制冷监控系统

在全球能源需求日益增长的背景下&#xff0c;太阳能作为一种无限再生能源&#xff0c;被广泛应用于各种能源系统中。本基于LabVIEW软件和STM32F105控制器的太阳能制冷监控系统的设计与实现&#xff0c;提供一个高效、经济的太阳能利用方案&#xff0c;以应对能源消耗的挑战。 项…

Node.js中的npm包:从入门到实践指南

目录 一、npm的核心概念 二、npm核心命令与工作流 三、package.json深度解析 四、高级技巧与最佳实践 五、常见问题解决方案 六、未来趋势 在Node.js生态中&#xff0c;npm&#xff08;Node Package Manager&#xff09; 是开发者不可或缺的工具。它不仅是全球最大的开源软…

AIGC图生视频保姆级教程

一、AI文生图高阶技巧 推荐工具 ▸ MidJourney&#xff08;艺术感最强&#xff09; ▸ DALLE 3&#xff08;与ChatGPT深度联动&#xff09; ▸ Leonardo.ai&#xff08;精细化参数控制&#xff09; 核心策略 提示词架构&#xff1a; [主体描述][环境氛围][镜头语言][风格参数…

嵌入式EasyRTC实时通话支持海思hi3516cv610,编译器arm-v01c02-linux-musleabi-gcc

EasyRTC已经完美支持海思hi3516cv610&#xff0c;编译器arm-v01c02-linux-musleabi-gcc&#xff0c;总体SDK大小控制在680K以内&#xff08;预计还能压缩100K上下&#xff09;&#xff1a; EasyRTC在hi3516cv610芯片上能双向通话、发送文字以及二进制指令&#xff0c;总体运行…