day16 leetcode-hot100-31(鏈表10)

25. K 個一組翻轉鏈表 - 力扣(LeetCode)

1.模擬法

思路

將這個過程拆解為兩個步驟,第一步將單分組的節點反轉,第二步將反轉后的鏈表加入原鏈表。

針對節點反轉很容易,參考之前的206. 反轉鏈表 - 力扣(LeetCode)

針對反轉后的鏈表加入原鏈表,我們需要該鏈表前一個節點pre,以及后面一個節點nex。

所以我們要提前將pre與nex存儲起來。

具體步驟

(1)創建哨兵節點dump,讓頭節點不再特殊。同時pre=dump為第一個需要反轉鏈表的前一個節點。

(2)判斷需要反轉的鏈表是否有k個長度,若有則繼續,若無直接輸出結果dump.next;

(3)存儲nex,pre,方便后續加入原鏈表。

(4)反轉鏈表(返回新的頭節點與尾節點),并將鏈表加入原鏈表。

(5)更新pre為tail,head為tail.next,方便下一次循環。

具體代碼
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode dump = new ListNode(0,head);ListNode pre = dump;while(head!=null){ListNode tail = pre;for(int i=0;i<k;i++){tail=tail.next;if(tail==null){return dump.next;}}ListNode nex = tail.next;ListNode[] rev = myRev(head,tail);head = rev[0];tail = rev[1];pre.next = head;tail.next=nex;pre=tail;head = tail.next;}return dump.next;}public ListNode[] myRev(ListNode n1,ListNode n2){ListNode pre1 = n2.next;ListNode end = pre1;ListNode cur = n1;while(cur!=end){ListNode next1 =cur.next;cur.next=pre1;pre1=cur;cur=next1;}ListNode[] r = {n2,n1};return r;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82111.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82111.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82111.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

測試總結(二)

持續集成 軟件開發實踐 開發提交代碼到gitlab上 自動化構建&#xff08;編譯、打包、部署、自動化測試&#xff09; 盡早發現集成問題 過程&#xff1a; 提交代碼-人工/定時觸發-自動構建-自動部署-構建成功-獲取構建環境信息-郵件通知-自動測試 快速集成、快速反饋、快速解決…

(二)微服務(grpc/grpc消費者)

文章目錄 項目地址一、grpc介紹1.1 項目初始化1. 創建grpc項目2. 項目結構二、Discount grpc創建2.1 實體層1. Coupon實體2.2 Protos1. 創建discount.proto2. 配置proto3. 創建DiscountService4. Program里注冊服務2.3 Seed 數據1. 創建表和Seed數據2. 自動migration2.4 更新Do…

InfluxQL 數據分析實戰:聚合、過濾與關聯查詢全解析

InfluxQL 作為時序數據庫的專用查詢語言&#xff0c;在處理時間序列數據時展現出獨特優勢。本文深入探討 聚合計算、數據過濾和跨測量關聯 三大核心操作&#xff0c;通過真實代碼示例展示如何從海量時序數據中提取關鍵洞察。文中涵蓋從基礎平均值計算到復雜多維度分析的完整流程…

TDengine 運維——巡檢工具(安裝前檢查)

簡介 本文檔旨在介紹 TDengine 安裝部署前后配套的巡檢工具。 相關工具的功能簡介&#xff1a; 工具名稱功能簡介安裝前檢查部署前對 TDengine 安裝部署的依賴要素進行安裝前檢查安裝前預配置部署前對 TDengine 安裝部署的依賴要素進行安裝前預配置安裝部署指定環境安裝部署…

大語言模型(LLM)入門 - (1) 相關概念

文章來自&#xff1a;大語言模型(LLM)小白入門自學項目-TiaoYu-1 GitHub - tiaoyu1122/TiaoYu-1: For People! For Freedom!For People! For Freedom! Contribute to tiaoyu1122/TiaoYu-1 development by creating an account on GitHub.https://github.com/tiaoyu1122/TiaoYu…

LearnOpenGL-筆記-其十一

Normal Mapping 又到了介紹法線貼圖的地方&#xff0c;我感覺我已經寫了很多遍了... 法線貼圖用最簡單的話來介紹的話&#xff0c;就是通過修改貼圖對應物體表面的法線來修改光照效果&#xff0c;從而在不修改物體實際幾何形狀的前提下實現不同于物體幾何形狀的視覺效果。 因…

Spring Boot 讀取.env文件獲取配置

Spring Boot 讀取.env文件獲取配置 在Resouce 目錄下創建.env文件 # DEEP SEEK TOKEN DEEP_SEEK_TOKENyour_deep_seek_key # 阿里云百煉 TOKEN ALI_BAILIAN_TOKENyour_ali_bailian_keyyml引入.env文件 spring:config:import: optional:classpath:.env[.properties]使用.env文…

【C++高級主題】命令空間(三):未命名的命名空間

目錄 一、未命名的命名空間的基本概念 1.1 定義與特點 1.2 基本語法 1.3 訪問方式 1.4 未命名的命名空間的作用 二、未命名的命名空間與靜態聲明的比較 2.1 靜態聲明的作用 2.2 未命名的命名空間的優勢 2.3 示例代碼比較 2.4. 未命名的命名空間的作用域和鏈接屬性 三…

【Unity】AudioSource超過MaxDistance還是能聽見

unity版本&#xff1a;2022.3.51f1c1 將SpatialBlend拉到1即可 或者這里改到0 Hearing audio outside max distance - #11 by wderstine - Questions & Answers - Unity Discussions

多個vue2工程共享node_modules

手頭有多個vue2項目&#xff0c;它們每個都需要一個node_modules&#xff0c;拷貝起來超級麻煩。于是想到能否共享一個node_modules呢&#xff1f;&#xff1f; 方法其實挺多&#xff0c;我選擇了一個較簡單的&#xff1a;符號連接法(win11平臺) 創建方法很簡單&#xff1a;比…

C語言-10.字符串

10.1字符串 10.1-1字符串 字符數組 char word[] = {‘H’,‘e’,‘l’,‘l’,‘o’,‘!’}; word[0]Hword[1]eword[2]lword[3]lword[4]oword[5]!這不是C語言的字符串,因為不能用字符串的方式做計算 字符串 char word[] = {‘H’,‘e’,‘l’,‘l’,‘o’,‘!’}; word[0]Hwo…

Python訓練營打卡Day41(2025.5.31)

知識回顧 數據增強卷積神經網絡定義的寫法batch歸一化&#xff1a;調整一個批次的分布&#xff0c;常用與圖像數據特征圖&#xff1a;只有卷積操作輸出的才叫特征圖調度器&#xff1a;直接修改基礎學習率 卷積操作常見流程如下&#xff1a; 1. 輸入 → 卷積層 → Batch歸一化層…

樂觀鎖:高效并發無鎖方案

4.樂觀鎖 這一章主要介紹樂觀鎖。前面的管程部分講了悲觀鎖&#xff0c;現在做一些總結&#xff1a; 悲觀鎖&#xff08;Pessimistic Lock&#xff09;&#xff1a;悲觀鎖認為數據在多線程或多進程環境下總是容易發生沖突/沖突的概率高&#xff0c;所以在數據操作前&#xff…

山海鯨輕 3D 渲染技術深度解析:預渲染如何突破多終端性能瓶頸

在前期課程中&#xff0c;我們已系統講解了山海鯨兩大核心渲染模式——云渲染與端渲染的技術特性及配置方法。為滿足復雜場景下的差異化需求&#xff0c;山海鯨創新推出輕3D渲染功能&#xff0c;本文將深度解析該技術的實現原理與操作實踐。 一、輕3D功能研發背景 針對多終端協…

【合集】Linux——31個普通信號

Linux普通信號總表&#xff08;1-31&#xff09;?? ?編號??信號名??觸發原因??默認動作?1SIGHUP終端連接斷開&#xff08;如SSH會話終止&#xff09;或守護進程重載配置&#xff08;如nginx -s reload&#xff09;終止進程2SIGINT用戶輸入CtrlC中斷前臺進程終止進程…

小程序使用npm包的方法

有用的鏈接 npm init -y 這個命令很重要, 會初始化 package.json 再重新打開微信小程序開發工具 選擇工具中npm構建 在程序中引用時在main.js中直接使用包名的方式引用即可 如安裝的是generator包&#xff0c;npm構建后就會生成 const myPackage require(***-generato…

騰訊云推出云開發AI Toolkit,國內首個面向智能編程的后端服務

5月28日&#xff0c;騰訊云開發 CloudBase 宣布推出 AI Toolkit&#xff08;CloudBase AI Toolkit&#xff09;&#xff0c;這是國內首個面向智能編程的后端服務&#xff0c;適配 Cursor 等主流 AI 編程工具。 云開發 AI Toolkit旨在解決 AI 輔助編程的“最后一公里”問題&…

系統是win11+兩個ubuntu,ubuntu20.04和ubuntu22.04,想刪除ubuntu20.04且不用保留數據

在 Ubuntu 22.04 的終端里運行這些命令: 重啟電腦&#xff0c;選擇啟動 Ubuntu 22.04&#xff1b;打開終端&#xff1b;從 lsblk 開始操作。 如果你不確定當前啟動的是哪個系統&#xff0c;可以在終端輸入&#xff1a; lsb_release -a它會輸出&#xff1a; Distributor ID: …

大模型應用開發第三講:大模型是Agent的“大腦”,提供通用推理能力(如GPT-4、Claude 3)

大模型應用開發第三講&#xff1a;大模型是Agent的“大腦”&#xff0c;提供通用推理能力&#xff08;如GPT-4、Claude 3&#xff09; 資料取自《大模型應用開發&#xff1a;動手做AI Agent 》。 查看總目錄&#xff1a;學習大綱 關于DeepSeek本地部署指南可以看下我之前寫的…

第十四篇:MySQL 運維中的故障場景還原與排查實戰技巧

本篇通過典型故障場景的還原與分析&#xff0c;幫助你掌握高效、系統的 MySQL 故障排查與應急處理方法&#xff0c;構建穩定可靠的數據庫運維體系。 一、故障排查的基本思路 快速定位問題入口&#xff1a; 錯誤日志、連接報錯、監控告警&#xff1b; 確認影響范圍&#xff1a…