刷題記錄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.pswp.cn/news/895665.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895665.shtml
英文地址,請注明出處:http://en.pswp.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;總體運行…