牛客网刷题笔记四 链表节点k个一组翻转
NC50 链表中的节点每k个一组翻转
题目:
思路:
这种题目比较习惯现在草稿本涂涂画画链表处理过程。整体思路是赋值新的链表,用游离指针遍历原始链表进行翻转操作,当游离个数等于k时,就将翻转后的链表接到新的链表后,如最后个数不满k,则将原始链表剩余节点接到新的链表后。
游离的过程中,每次将当前游离的头节点赋为最新遍历的节点,同时将前一个节点链接到下一个节点。
这个代码写的过程中有点绕,过程有些bug,写了个打印链表的函数调试了下。
代码
class Solution:def reverseKGroup(self , head: ListNode, k: int) -> ListNode:def printList(h):## 打印链表result = []t = hwhile t:result.append(t.val)t = t.nextprint(result)# write code hereif not head or not head.next or k == 1:return headnewHead = ListNode(head.val) ## 最终输出的头节点newTail = ListNode(head.val) ## 每次翻转完成确定尾节点curHead = ListNode(head.val) ## 当前游离的头节点curNode = curHead ## 当前游离节点curTail = curHeadoriNextNode = head.next ## 原始节点顺序oriCurHead = head ## 记录原始链表中每次遍历的组里的头节点count = 1switchTime = 0 ## 成功翻转的组数while curNode:# print(f'{switchTime}次交换的{count}位')if count < k and oriNextNode:## 可以继续遍历的情况curNode = ListNode(oriNextNode.val) ## 游离原始链表的节点curNode.next = curHead ## 将最新的节点指向当前游离组里的头节点,实现翻转curHead = curNode ## 最新节点为头节点oriNextNode = oriNextNode.next if oriNextNode else None ## 继续遍历原始链表count+=1elif count == k:## 成功翻转的情况count = 1switchTime += 1if switchTime == 1:newHead = curHead ## 第一次翻转,获取翻转后的头节点newTail = curTailelse:newTail.next = curHead ## 除了第一次翻转,其余均用翻转后的尾节点做关联指向下一组节点newTail = curTailcurHead = ListNode(oriNextNode.val) if oriNextNode else None ## 获取下一组的头节点curNode = curHeadcurTail = curHeadoriCurHead = oriNextNode ## 获取下一组的原始头节点oriNextNode = oriNextNode.next if oriNextNode else Noneelif switchTime >= 1:## 无法继续遍历,且有翻转过的情况newTail.next = oriCurHeadreturn newHeadelse:## 一次翻转都未成功的情况return head# printList(newHead)# printList(curHead)# printList(head) return newHead
相关文章:
牛客网刷题笔记四 链表节点k个一组翻转
NC50 链表中的节点每k个一组翻转 题目: 思路: 这种题目比较习惯现在草稿本涂涂画画链表处理过程。整体思路是赋值新的链表,用游离指针遍历原始链表进行翻转操作,当游离个数等于k时,就将翻转后的链表接到新的链表后&am…...
【数据结构】图<简单认识图>
对于下面的内容,大家着重观察和理解图即可,可以直接绕过一些文字性的概念,对图有一个大概的认识。 图 简单认识图图的定义有向图和无向图完全图无向完全图有向完全图 图的基本存储结构邻接矩阵存储邻接矩阵的优点 网络的邻接矩阵邻接表无向图…...
Git介绍和基础命令解析
Git基本操作指令 工作区和暂存区 Git管理的文件分为:工作区(本地的文件夹),版本库(.git文件夹),版本库又分为暂存区stage和暂存区分支master(仓库) 工作区>>>>暂存区>>>>仓库 git add把文件从工作区>>>…...
力扣hot100 和为 K 的子数组 前缀和
👨🏫 题目地址 🍻 AC code class Solution {public int subarraySum(int[] nums, int k){int ans 0;int n nums.length;int[] s new int[n 1];// 前缀和s[0] 0;s[1] nums[0];for (int i 2; i < n; i)s[i] s[i - 1] nums[i - 1…...
6.12找树左下角的值(LC513-M)
算法: 这道题适合用迭代法,层序遍历:按层遍历,每次把每层最左边的值保存、更新到result里面。 看看Java怎么实现层序遍历的(用队列): /*** Definition for a binary tree node.* public clas…...
【精选】框架初探篇之——MyBatis的CRUD及配置文件
MyBatis增删改查 MyBatis新增 新增用户 持久层接口添加方法 void add(User user);映射文件添加标签 <insert id"add" parameterType"com.mybatis.pojo.User">insert into user(username,sex,address) values(# {username},# {sex},# {address}) <…...
ES8语法async与await
async和await两种语法结合可以让异步代码像同步代码一样。 一、async函数 async函数的返回值为Promise对象promise对象的结果由async函数执行的返回值决定 async function fn() {// 返回一个字符串return 字符串;// 返回的结果不是一个Promise类型的对象…...
c#处理SQLSERVER 中image数量类型为空
项目场景: DataRow dataRow dataTable.Rows[i]; var pxpicture dataRow ["pxImage"];if (pxpicture!null){byte[] pic (byte[])pxpicture;acs.Add("pxpicture", Convert.ToBase64String(pic));}问题描述 代码执行出现错误: 无…...
五子棋游戏
import pygame #导入pygame模块 pygame.init()#初始化 screen pygame.display.set_mode((750,750))#设置游戏屏幕大小 running True#建立一个事件 while running:#事件运行for event in pygame.event.get():if event.type pygame.QUIT:#当点击事件后退出running False #事…...
vue+SpringBoot的图片上传
前端VUE的代码实现 直接粘贴过来element-UI的组件实现 <el-uploadclass"avatar-uploader"action"/uploadAvatar" //这个action的值是服务端的路径,其他不用改:show-file-list"false":on-success"handleAvatarSuccess"…...
FFmepg 核心开发库及重要数据结构与API
文章目录 前言一、FFmpeg 核心开发库二、FFmpeg 重要数据结构与 API1、简介2、FFmpeg 解码流程①、FFmpeg2.x 解码流程②、FFmpeg4.x 解码流程 3、FFMpeg 中比较重要的函数以及数据结构①、数据结构②、初始化函数③、音视频解码函数④、文件操作⑤、其他函数 三、FFmpeg 流程1…...
训练 CNN 对 CIFAR-10 数据中的图像进行分类
1. 加载 CIFAR-10 数据库 import keras from keras.datasets import cifar10# 加载预先处理的训练数据和测试数据 (x_train, y_train), (x_test, y_test) cifar10.load_data() 2. 可视化前 24 个训练图像 import numpy as np import matplotlib.pyplot as plt %matplotlib …...
香港科技大学广州|智能制造学域博士招生宣讲会—天津大学专场
时间:2023年12月07日(星期四)15:30 地点:天津大学卫津路校区26楼B112 报名链接:https://www.wjx.top/vm/mmukLPC.aspx# 宣讲嘉宾: 汤凯教授 学域主任 https://facultyprofiles.hkust-gz.edu.cn/faculty-p…...
滑动窗口练习(二)— 子数组中满足max -min <= sum的个数
题目 给定一个整型数组arr,和一个整数num 某个arr中的子数组sub,如果想达标,必须满足: sub中最大值 – sub中最小值 < num, 返回arr中达标子数组的数量 暴力对数器 暴力对数器方法主要是用来和另一个方法互相校验正…...
用xlwings新建一个excel并同时生成多个sheet
新建一个excel并同时生成多个sheet,要实现如下效果: 一般要使用数据透视表来快速实现。 今天记录用xlwings新建一个excel并同时生成多个sheet。 import xlwings as xw # 打开excel,参数visible表示处理过程是否可视,add_book表示是否打开新的Excel程序…...
诺威信,浪潮云,微众区块链
目录 诺威信B隐私计算平台 浪潮云=星火连-澳优码 HyperChain 产品介绍 CA认证即电子认证服务...
Redux在React中的使用
Redux在React中的使用 1.构建方式 采用reduxjs/toolkitreact-redux的方式 安装方式 npm install reduxjs/toolkit react-redux2.使用 ①创建目录 创建store文件夹,然后创建index和对应的模块,如上图所示 ②编写counterStore.js 文章以counterStore…...
Go 数字类型
一、数字类型 1、Golang 数据类型介绍 Go 语言中数据类型分为:基本数据类型和复合数据类型基本数据类型有: 整型、浮点型、布尔型、字符串复合数据类型有: 数组、切片、结构体、函数、map、通道(channel)、接口 2、…...
时间序列预测 — Informer实现多变量负荷预测(PyTorch)
目录 1 实验数据集 2 如何运行自己的数据集 3 报错分析 1 实验数据集 实验数据集采用数据集4:2016年电工数学建模竞赛负荷预测数据集(下载链接),数据集包含日期、最高温度℃ 、最低温度℃、平均温度℃ 、相对湿度(平均) 、降雨…...
2023年金融信创行业研究报告
第一章 行业概况 1.1 定义 金融信创是指在金融行业中应用的信息技术,特别是那些涉及到金融IT基础设施、基础软件、应用软件和信息安全等方面的技术和产品。这一概念源于更广泛的“信创 (信息技术应用创新)”,即通过中国国产信息技术替换海外信息技术&a…...
RWKV7-1.5B-G1A快速部署:基于Docker和VS Code的远程开发环境搭建
RWKV7-1.5B-G1A快速部署:基于Docker和VS Code的远程开发环境搭建 1. 引言 如果你正在寻找一种高效的方式来搭建RWKV7-1.5B-G1A模型的开发环境,这篇教程正是为你准备的。我们将使用Docker和VS Code的远程开发功能,在星图GPU平台上快速搭建一…...
图像滤波实战:理想、巴特沃斯与高斯滤波器的低通/高通实现与性能对比
1. 图像滤波基础与核心概念 第一次接触图像滤波时,我完全被各种专业术语搞晕了。直到自己动手写代码调试,才发现原来这些滤波器就像不同类型的"美颜滤镜"——有的擅长磨皮(低通滤波),有的擅长锐化࿰…...
前新造车一哥重拾辉煌,日本车最高兴,难怪国产车转向节油混动
新造车当中,零跑再度冲破5万辆,而理想则冲破4万辆,不过最让人惊讶的则是理想i6月销破2.4万辆,占理想销量比例接近六成,这不仅证明这家车企转型纯电技术的成功,更是对电车行业电混技术的巨大打击,…...
【NOIP】1998真题解析 luogu-P1011 车站 | GESP四、五级以上可练习
NOIP 1998 提高组真题,主要考察递推与斐波那契数列规律应用。题目需要对上下车人数的状态进行合理地抽象模拟并求解未知变量。GESP四、五级以上可练习。题目难度⭐⭐☆☆☆,洛谷难度等级普及−。 luogu-P1011 [NOIP 1998 提高组] 车站 题目要求 题目题…...
OpenClaw多模态编程:Phi-3-vision-128k-instruct实现流程图转Python代码
OpenClaw多模态编程:Phi-3-vision-128k-instruct实现流程图转Python代码 1. 为什么需要流程图转代码工具 在原型开发阶段,我经常遇到这样的困境:在白板上画完清晰的流程图后,需要花费大量时间手动转换为可执行代码。这种重复劳动…...
Flowable任务超时监控与自动化处理实战
1. 为什么需要Flowable任务超时监控? 在实际业务流程中,任务超时是个常见但容易被忽视的问题。想象一下,你提交了一个采购审批流程,但审批人迟迟没有处理,导致整个采购计划被耽误。这种情况在企业内部每天都在发生&…...
从零到一:STM32 SPWM逆变器设计全流程解析
从零到一:STM32 SPWM逆变器设计全流程解析 在新能源和电力电子领域,逆变器作为直流转交流的关键设备,其设计能力已成为工程师的核心竞争力之一。而基于STM32的SPWM逆变器设计,因其高性价比和灵活可控的特点,正成为工业…...
别再被JJWT新版坑了!手把手教你从0.12.x降级到0.11.2解决parseClaimsJws报错
JJWT版本降级实战:从0.12.x回退0.11.2解决parseClaimsJws报错指南 最近在Spring Boot项目中整合JWT时,不少开发者反馈升级到JJWT 0.12.x后突然遭遇parseClaimsJws方法消失的编译错误。这个看似简单的API变动背后,其实是JJWT团队对安全架构的重…...
COMSOL仿真石墨烯吸收器,带视频演示,一步一步教学,原文章来自于一篇二区文章。 图片展示为...
COMSOL仿真石墨烯吸收器,带视频演示,一步一步教学,原文章来自于一篇二区文章。 图片展示为原文献结果,均可复现,视频里面包括设计步骤,可以用来学习操作仿真操作最近在研究石墨烯吸收器的仿真,发…...
游戏开发者必备免费源码网,一键搭建
一、全场景覆盖:从休闲小游戏到商业级项目 源码分享网的源码资源库堪称“游戏开发的全家桶”,覆盖了从前端交互到后端逻辑、从移动端到网页端的完整技术栈。无论是想要快速验证创意的休闲小游戏,还是需要搭建商业级游戏平台,这里…...
