LeetCode Hard|【25. K 个一组翻转链表】
力扣题目链接
首先我们考虑一种很直观的思路:
- 遍历链表,统计链表长度
- 遍历链表,进行翻转
- 对于每一组长度为 K 的节点,进行翻转
- 如果剩余节点不足 K 个,则不进行翻转
- 连接翻转后的子链表
这里我们用的就是只用 O(1) 额外内存空间的算法
关于如何 k 个节点个数的链表
我认为这里最重要的是链表的翻转,当你知道需要翻转的链表长度的时候,这个方法应该按照固定模版来进行,也就是我们的三指针:
for (int i = 1; i < k; i++) {cur->next = nex->next;nex->next = pre->next;pre->next = nex;nex = cur->next;
}
但是还记得我们之前在做反转链表题目的时候是怎么处理的嘛:
while (cur) {ListNode *nex = cur->next;cur->next = pre;pre = cur;cur = nex;
}
这里简单直观多了,最大的区别是什么呢?
首先,做整表翻转的时候,我们的逻辑非常简单
其次,对于对 k 个节点分组翻转,并且我们还必须做到对剩余的 k 个节点不进行翻转,势必有这样形式的代码:
while (cout >= k) {...for (...) {...}...count -= k;
}
CPP总体代码:
class Solution {
public:ListNode* reverseKGroup(ListNode* head, int k) {if (!head || k == 1) return head;ListNode *dummyHead = new ListNode();dummyHead->next = head;ListNode *cur = dummyHead, *pre = dummyHead, *nex = dummyHead;int count = 0;cur = head;while (cur) {cur = cur->next;count++;}while (count >= k) {cur = pre->next;nex = cur->next;for (int i = 1; i < k; i++) {cur->next = nex->next;nex->next = pre->next;pre->next = nex;nex = cur->next;}pre = cur;count -= k;}return dummyHead->next;}
};
相关文章:
LeetCode Hard|【25. K 个一组翻转链表】
力扣题目链接 首先我们考虑一种很直观的思路: 遍历链表,统计链表长度遍历链表,进行翻转 对于每一组长度为 K 的节点,进行翻转如果剩余节点不足 K 个,则不进行翻转 连接翻转后的子链表 这里我们用的就是只用 O(1) 额外内…...
python爬虫预备知识三-多进程
python实现多进程的方法:fork、multiprocessing模块创建多进程。 os.fork方法 os.fork方法只适合于unix/linux系统,不支持windows系统。 fork方法调用一次会返回两次,原因在于操作系统将当前进程(父进程)复制出一份…...
【zlm】针对单个设备的音频的编码的设置
目录 结论 原理 测试 结论 为了防止zlm音频配置里设置成opus优先,在国标推流时,调用push时,默认加上codecpcma 如下 https://10.60.100.196:10443/index/api/webrtc?applive&streamtest&typepush&codecpcma 原理 测试 …...
文案人的梦工场,网易入职指南!
网易云对于咱们一些有点文艺的文案策划来说,简直就是梦中情司。 在这里工作锻炼机会很多,也很开拓眼界,能获得相当于在别处3倍能力的成长速度,福利待遇也是很好的。 要进入网易云音乐做文案策划,你可以按照以下步骤进…...
做一个能和你互动玩耍的智能机器人之七-接入对话和大模型
接入科大迅飞的语音识别: private void printResult(RecognizerResult results) {String text JsonParser2.parseIatResult(results.getResultString());String sn null;// 读取json结果中的sn字段try {JSONObject resultJson new JSONObject(results.getResult…...
阿里巴巴商家联系方式采集软件使用教程
以下是一个批量访问阿里巴巴商家店铺的Python代码示例: import requestsdef visit_shop(shop_url):try:response requests.get(shop_url)if response.status_code 200:print(f"成功访问店铺:{shop_url}")else:print(f"访问店铺失败&am…...
Golang | Leetcode Golang题解之第326题3的幂
题目: 题解: func isPowerOfThree(n int) bool {return n > 0 && 1162261467%n 0 }...
人大金仓(Kingbase)数据库高阶函数详解
人大金仓(Kingbase)数据库高阶函数详解 人大金仓(Kingbase)数据库是一款基于 PostgreSQL 的国产关系型数据库(PostgreSQL 高阶函数详解:全面深入的功能与实用示例 ),提供了丰富的高阶函数,以支…...
云原生真机实验
基于Proxmox VE构建中小企业云计算平台 首先Proxmox VE是什么?能用来做什么? Proxmox VE是一个完整的企业虚拟化开源平台。借助内置的 Web 界面,可以在单个解决方案上轻松管理 VM(开虚拟机的) 和容器、软件定义的存储和网络、高可用性群集以…...
【电子电路学习笔记】——模电笔记
关于专栏:本专栏用于分享学习电子电路过程中记录的笔记。模电部分使用的教材是高等教育出版社,华成英主编的《模拟电子技术基础(第六版)》(其他版本的内容差不多,建议使用最新版教材)࿱…...
部署伪分布式 Hadoop集群
部署伪分布式 Hadoop集群 一、JDK安装配置1.1 下载JDK1.2 上传解压1.3 java环境配置 二、伪分布式 Hadoop 安装配置2.1 Hadoop 下载2.2 上传解压2.3 Hadoop 文件目录介绍2.4 Hadoop 配置2.4.1 修改 core-site.xml 配置文件2.4.2 修改 hdfs-site.xml 配置文件2.4.3 修改 hadoop-…...
十九、虚拟机VMware Workstation(CentOSDebian)的安装
目录 🌻🌻 一、安装 VMware Workstation1.1 安装 VMware Workstation1.2 虚拟机上安装 CentOS1.3 虚拟机安装 Debian 二、配置Debian方便第三方工具远程连接2.1 配置debian2.2 安装远程SSH工具并连接 一、安装 VMware Workstation 官网下载 本地资源库…...
理解Android framework之AOSP:从内核到应用层
一、AOSP Android framework确保设备的各个部件和程序顺利协同工作。对于想要全面了解 Android 设备内部工作原理、开发高质量应用、优化设备性能以及充分利用 Android 生态系统潜力的人来说,了解 Android 框架也是必不可少的。它是连接用户、开发者和 Android 平台…...
杂谈c语言——3.内存对齐
先看两个例子: typedef struct S {int a;double b;char c; }S;typedef struct B {int a;char b;double c; }B;int main() {printf("S : %d\n", sizeof(S));printf("B : %d\n", sizeof(B));return 0; } 结果为: S:24; B:16ÿ…...
瑞芯微Android设备指定应用开启性能模式
本文档主要针对特定应用(如 安兔兔)如何进行加速及性能的提升做相关说明。 快速开启方法 开启与关闭 在 device/rockchip/rk3xxx/下配置文件:package_performance.xml,在其中的节点中加入需要使用性能模式的包名:(…...
ASP.NET Core基础 - 简介
目录 一. 简介 A、跨平台性 B、高性能 C、开源性 D、模块化与可扩展性 E、集成现代前端技术 二. ASP.NET 4.x 和 ASP.NET Core 比较 A、架构与平台支持 B、性能 C、开发体验 D、社区支持与生态系统 三. NET 与 .NET Framework 比较 A、概念范围 B、跨平台能力 C…...
Flask+LayUI开发手记(一):LayUI表格的前端数据分页展现
用数据表格table展示系统数据,是LayUI的基本功能,编码十分简单,就是通过table.render()渲染,把属性配置好就OK了,十分方便,功能也十分强大。 不过,在实现时,把table的有个功能却理解…...
Vulnhub靶场DC-9练习
目录 0x00 准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用1. 发现SQL注入点2. Sqlmap跑数据3. 文件包含4. SSH爆破端口敲门服务5. 提权(写入/etc/passwd) 0x04 总结 0x00 准备 下载链接:https://download.vulnhub.com/dc/DC-9.z…...
Java对象内存布局和对象头
文章目录 面试题Object object new Object() 谈谈你对这句话的理解? 对象在堆内存中存储布局权威定义(周志明老师JVM第三版)对象在堆内存中的存储布局详解对象头的MarkWord源码对象标记源码 对象内存布局(使用JOL证明)…...
python:基于YOLO框架和遥感图像的目标检测
作者:CSDN _养乐多_ 本文将介绍如何通过YOLO框架和遥感图像进行目标检测的代码。 文章目录 一、数据集下载与格式转换1.1 NWPU VHR-10(73.1 MB)1.2 DIOR(7.06 GB)1.3 配置data.yaml 二、训练三、训练结果 一、数据集…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
