Python算法练习 10.14

news2025/1/16 14:05:02

leetcode 2095 删除链表的中间节点

给你一个链表的头节点 head 。删除 链表的 中间节点 ,并返回修改后的链表的头节点 head 。

长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点(下标从 0 开始),其中 ⌊x⌋ 表示小于或等于 x 的最大整数。

  • 对于 n = 1234 和 5 的情况,中间节点的下标分别是 0112 和 2 。

示例 1:

输入:head = [1,3,4,7,1,2,6]
输出:[1,3,4,1,2,6]
解释:
上图表示给出的链表。节点的下标分别标注在每个节点的下方。
由于 n = 7 ,值为 7 的节点 3 是中间节点,用红色标注。
返回结果为移除节点后的新链表。 

示例 2:

输入:head = [1,2,3,4]
输出:[1,2,4]
解释:
上图表示给出的链表。
对于 n = 4 ,值为 3 的节点 2 是中间节点,用红色标注。

示例 3:

输入:head = [2,1]
输出:[2]
解释:
上图表示给出的链表。
对于 n = 2 ,值为 1 的节点 1 是中间节点,用红色标注。
值为 2 的节点 0 是移除节点 1 后剩下的唯一一个节点。

快慢指针

class Solution(object):
    def deleteMiddle(self, head):
        """
        :type head: Optional[ListNode]
        :rtype: Optional[ListNode]
        """
        p1 = p2 = head = ListNode(0, head)
        while p2.next and p2.next.next:
            p1, p2 = p1.next, p2.next.next
        p1.next = p1.next.next
        return head.next  

 leetcode 328 奇偶链表

给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。

第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。

请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。

你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。 

示例 1:

输入: head = [1,2,3,4,5]
输出: [1,3,5,2,4]

 创建了三个辅助指针,一个纸箱当前要排序的结点,一个指向前面已经排好序的尾结点,一个指向已排序的奇数索引最后一个结点。

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):
    def oddEvenList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        if not head or not head.next or not head.next.next: # 表中元素小于等于2 直接返回
            return head
        tail = head.next # 表尾
        oddtail = head # 奇数表尾
        i = 3
        cur = head.next.next # 前两个元素直接有序,从无序的第3个元素开始
        while cur != None:
            if i % 2 != 0: # 索引奇数
                tail.next = cur.next
                cur.next = oddtail.next
                oddtail.next = cur
                oddtail = cur
                cur = tail.next
            else:
                cur = cur.next
                tail = tail.next
            i += 1
        return head



 leetcode 206 反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例 1:

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        head = ListNode(0, head)
        rehead = ListNode(0, None)
        cur = head.next
        # priCur = head
        while cur != None:
            priCur = cur
            priCur = priCur.next
            cur.next = rehead.next
            rehead.next = cur
            cur = priCur
        return rehead.next

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

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

相关文章

androidx和v4包资源冲突解决方法

一、资源包会报如下错误: 错误类似 (androidx.core:core:1.10.0) 和 (com.android.support:support-compat:24.2.0) 表示资源重复,不知调用androidx包下面的,还是v4包下面的 Duplicate class android.support.v4.app.INotificationSideCha…

恒温区检测热电偶

声明 本文是学习GB-T 4000-2017 焦炭反应性及反应后强度试验方法. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 7— 进气口; 8— 测温热电偶。 图 A.1 单点测温加热炉体结构示意图 A.3 温度控制装置 控制精度:(11003)℃。…

RK3568 DRM显示框架

一.简介 显示子系统是 Rockchip 平台显示输出相关软硬件系统的统称,它包括 VOP(比较老的平台叫 LCDC,比如 RK3188、RK3066)和 RGB、BT1120、BT656、I8080(MCU 显示接口),LVDS、MIPI DSI、EDP、…

PyTorch模型INT8量化基础

PyTorch模型INT8量化基础 最基础的Tensor量化校准两种不同的量化方案每张量和每通道量化方案量化后端引擎配置QConfigTensor量化Post Training Static Quantization (训练后静态量化)fuse_model:融合网络中的一些层 设置qCONFIGprepare: 定标 :scale 和 zero_point喂…

ASEMI整流桥KBL410需要散热片吗?

编辑-Z 在决定电子设备或半导体组件的配置时,了解每个部件的性能和需求至关重要。那么,对于KBL410这款整流桥,它是否需要散热片呢?在本文中,我们将详细解析KBL410的工作原理,以及是否需要散热片。 首先&am…

数字电路中触发器/锁存器的简单理解,与电路结构

1,为什么有触发器? 数字逻辑电路系统包含组合逻辑和时序逻辑。组合逻辑用来实现与状态无关的门电路,比如算法的实现函数,无反馈,无记忆;时序逻辑则主要用来同步电路的各个状态,有反馈,有记忆&a…

Java多线程间的通信:生产者消费者问题

逻辑分析 代码实现 package ThreadCommunction;import sun.security.krb5.internal.crypto.Des;import java.util.Date;//目标:了解线程通信 public class ThreadTest {public static void main(String[] args) {//需求:3个生产者线程,负责产…

STM32F4X OLED使用

STM32F4X OLED使用 OLED简介OLED使用OLED驱动芯片SSD1309引脚SSD1309通信协议4线SPI模式3线SPI模式I2C模式OLED地址确认 8080接口OLED 8080写模式OLED 8080读模式 6800接口 SSD1309显示原理SSD1309显存大小SSD1309显存分布SSD1039数据显示MCU操作SSD1309显存方法 OLED取模字符取…

C++类总结

参考: C中的private, public, protected_c private-CSDN博客https://www.cnblogs.com/corineru/p/11001242.html C 中 Private、Public 和 Protected 的区别 Private Public Protected 声明为private类成员只能由基类内部的函数访问。 可以从任何地方访问声明…

Linux系统编程详解

Linux 多线程编程 什么是线程? 与线程类似,线程是允许应用程序并发执行多个任务的一种机制 线程是轻量级的进程(LWP:Light Weight Process),在 Linux 环境下线程的本 质仍是进程。 一个进程可以包含多个线…

使用dumuz工具实现淘宝收藏的宝贝批量下载(批量导出)

淘宝买家在实际应用中经常会将关心的淘宝宝贝添加到淘宝的收藏夹里,方便稍后查看和购买。如果你希望将淘宝收藏夹中的内容导出来,以便自己进行归类整理,可以按照以下教程进行操作: 应用功能描述 模拟人工操作淘宝"收藏夹-&…

消息称苹果或在明年推出搭载M3芯片的MacBook产品

近日据 DigiTimes 发布的博文,苹果公司计划在 2024 年推出搭载 M3 芯片的 MacBook 产品。然而,关于这款新产品的发布日期仍存在争议。虽然一些爆料认为苹果可能会在今年发布这款产品,但也有一些爆料认为发布时间会推迟到 2024 年。根据各项报…

Vue3引入腾讯地图,点击坐标后实时获取经纬度

本文将介绍如何在Vue 引入腾讯地图组件,引入后可以直接在页面中渲染腾讯地图,实现 经纬度 与 地图锚点位置的双向绑定,如: 1,输入经纬度后,地图自动定位到指定位置;2,鼠标在地图点击…

[论文笔记]SimCSE

引言 今天带来一篇当时引起轰动的论文SimCSE笔记,论文题目是 语句嵌入的简单对比学习。 SimCSE是一个简单的对比学习框架,它可以通过无监督和有监督的方式来训练。 对于无监督方式,输入一个句子然后在一个对比目标中预测它自己,仅需要标准的Dropout作为噪声。这种简单的…

XXL-Job分布式任务调度框架-知识点汇总5

一 XXLlob 1.1 xxl-job作用 XXL-JOB是一个轻量级分布式任务调度平台,XXL-JOB主要提供了任务的动态配置管理、任务监控和统计报表以及调度日志几大功能模块,支持多种运行模式和路由策略,可基于对应执行器机器集群数量进行简单分片数据处理。…

ftp靶机_获取shell

ftp靶机_获取shell 文章目录 ftp靶机_获取shellftp概念实验环境信息探测 发现漏洞优化shell ftp概念 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(…

macbook磁盘清理免费教程分享

笔记本电脑在是我们工作和生活中重要组成部分,磁盘清理是常有的事,而macbook作为其中的代表之一,也越来越受到人们的青睐。然而,如何进行macbook磁盘清理,也事许多人都会遇到的问题,特别是被提示“磁盘已满…

[python] pytest

在写一个项目前, 可以先编写测试模块 测试模块中包含了一个个最小的功能 当每一个功能都完善正确时 再将这些功能转换成项目运行的功能 多个项目运行的功能就组成了一个模块 多个模块就组成了一个项目服务 pytest 是一个 Python 测试框架,它提供了简单易用的语…

[补题记录] Atcoder Beginner Contest 294(E)

URL:https://atcoder.jp/contests/abc294 目录 E Problem/题意 Thought/思路 Code/代码 E Problem/题意 我们将其当作一个铺路的过程。 给总长度 L,计划 1 有 N 步,计划 2 有 M 步,每一步给出(v,l&a…

Python 列表切片陷阱:引用、复制与深复制

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 Python 列表的切片和赋值操作很基础,之前也遇到过一些坑, 但今天刷 Codewars 时发现了一个更大的坑,故在此记录。 Python 列表赋值&am…