BM8 链表中倒数最后k个结点

2023-10-27

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param pHead ListNode类 
     * @param k int整型 
     * @return ListNode类
     */
    ListNode* FindKthToTail(ListNode* pHead, int k) {
        // write code here
        ListNode * fast = pHead;
        ListNode * slow = pHead;
        // 用快慢指针的思想来做这个题
        // 快指针先行K步
        for (int i = 0; i < k ; i++)
        {
            if (fast !=NULL)
            {
                fast= fast->next;
            }
            else{
                return slow = NULL;
            } 
        }
        // 快慢指针同步,快指针先到底,慢指针指向倒数第K个
            while (fast != NULL)
            {
                 fast = fast -> next;
                 slow = slow -> next;
            }
            return slow;
    }
};

用快慢指针来解决,快指针先走,并判断K步之后快指针是否到最后一个节点,如果没有到最后一个节点,那此时开始走慢指针与快指针同步走,直到快指针到最后一个节点为止。这样的话快指针就是比慢指针多走K步,那当走结束的时候,慢指针刚好是在倒数K个的节点位置。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BM8 链表中倒数最后k个结点 的相关文章

  • 如何计算排列? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个关于 Java 排列的问题 Suppose I have five different elements in an arra
  • 我正在尝试寻找“调酒师算法”

    我正在解决旧编程竞赛中的一些示例问题 在这个问题中 我们输入了我们有多少调酒师以及他们知道哪种配方 每杯鸡尾酒的制作时间为 1 分钟 我们需要计算是否可以在 5 分钟内使用所有调酒师完成订单 解决这个问题的关键是尽可能高效地分配鸡尾酒 这就
  • 依赖解析算法

    我正在编写一个包管理器 为此我希望依赖项解析尽可能强大 每个包都有一个版本列表 每个版本包含以下信息 具有可比性的 ID 依赖关系 软件包列表以及每个软件包的一组可接受的版本 冲突 软件包列表以及每个软件包的一组与该版本一起导致问题的版本
  • 查找其索引的乘积可被另一个数字 X 整除的对的数​​量

    给定一个数组和某个值 X 找到满足以下条件的对的数量 i lt j a i a j and i j X 0 Array size lt 10 5 我想这个问题有一段时间了 但只能想出蛮力解决方案 通过检查所有对 这显然会超时 O N 2 t
  • 使用 A 星查找路径的启发式函数

    I am trying to find a optimal solution for the following problem 每个节点内表示的数字表示为 x y 一个节点的相邻节点总是有一个y值为 当前节点 y 值 1 更改的成本为 1
  • 如何衡量字符串的复杂度?

    我有一些长字符串 1 000 000 个字符 每个字符串仅包含定义字母表中的符号 例如 A 1 2 3 示例字符串 string S1 1111111111 meta complexity 0 string S2 1111222333 me
  • 优化两个三位数乘积的最大回文数?

    我正在研究一个面试问题 我被问到这个问题 我应该编写一个程序 从两个三位数的乘积中找到最大的回文数 这里是question https projecteuler net problem 4 我想出了这种从底部开始的蛮力方法 public c
  • 布隆过滤器的使用

    我正在努力理解布隆过滤器的用处 我了解了它的底层逻辑 空间压缩 快速查找 误报等 我只是不能将这个概念应用到现实生活中 因为它是有益的 一种常见的应用是在 Web 缓存中使用布隆过滤器 我们使用布隆过滤器来确定给定的 URL 是否在缓存中
  • 比 BMH (Boyer–Moore–Horspool) 更快的算法

    您会使用哪种算法来搜索短文本中的短子字符串 简而言之 我的意思是子字符串有 5 10 个字符 字符串有 255 个字符 我正在考虑根据输入数据长度选择算法 哪种算法对于较长的输入更好 Try Turbo BM http www igm un
  • 融合元组以查找等价类

    假设我们有一个包含 k 个元素的有限域 D d1 dk 我们认为 S 是 D n 的子集 即一组 形式的元组 其中 ai 在 D 中 我们希望使用 S 2 D n 的子集 即一组 形式的元组 其中 Ai 是 D 的子集 来 紧凑地 表示它
  • 寻找局部最小值

    下面的代码正确地找到了数组的局部最大值 但未能找到局部最小值 我已经进行了网络搜索 以找到找到最小值的最佳方法 并且根据这些搜索 我认为我正在使用下面的正确方法 但是 在几天的时间里多次检查每一行之后 下面的代码中有一些我仍然没有看到的错误
  • 按步长值变化对数组中的数字进行分组

    我有一个像 101 107 106 199 204 205 207 306 310 312 312 314 317 318 380 377 379 382 466 469 471 472 557 559 562 566 569 在这个数组中
  • 计算给出数组中最小标准差的子集

    让我们有一个大小的向量N 例如 x rand N 1 我想计算长度子集的最小标准差K在向量中 When N and K很小 很容易找到最好的子集 因为我可以使用nchoosek N K 枚举所有可能的子集 但是当值N and K比我们说的要
  • 为什么Python中pop()的大O与pop(0)不同[重复]

    这个问题在这里已经有答案了 他们不应该都是O 1 因为从 Python 列表中的任何位置弹出一个元素涉及销毁该列表并在新的内存位置创建一个元素 蟒蛇的list实现使用动态调整大小的 Carray在引擎盖下 删除元素usually要求您移动后
  • 算法:找到圆中的峰值

    Given n排列成圆圈的整数显示了一种可以找到一个峰值的有效算法 峰值是不小于它旁边的两个数字的数字 一种方法是遍历所有整数并检查每个整数以查看它是否是峰值 这产生O n 时间 似乎应该有某种方法来分而治之 以提高效率 EDIT 好吧 基
  • 使用 stl sort 对表进行排序

    我有一个巨大的表 约 50Gb 格式为 i j k 来自稀疏矩阵 存储为 uint32 t idx1 idx2 float vals uint32 t tablesize 我想使用给定的比较函数 即 idx1 和 idx2 的函数 对其进行
  • 如何使用networkx删除有向图中的所有相关节点?

    我不确定我的问题的正确术语是什么 所以我只会解释我想做的事情 我有一个有向图 删除节点后我希望所有独立相关的节点也被删除 这是一个例子 假设我删除节点 11 我希望节点 2 也被删除 在我自己的示例中 它们将是 2 以下的节点 现在也必须删
  • 如何计算一组字符串的最短唯一前缀?

    这是一个非常常见的算法命令行解析 给定一组预定义的长选项名称 计算唯一标识这些选项之一的最短前缀 例如 对于以下选项 help hostname portnumber name polymorphic 这将是输出 he ho por n p
  • 查找数组中的重叠数据

    我们正在编写一个 C 应用程序 它将有助于删除不必要的数据重复器 只有在以下情况下才可以移除中继器 all它接收到的数据被其他中继器接收 我们第一步需要做的事情解释如下 例如 我有 int 数组的集合 A 1 2 3 4 5 b 2 4 6
  • 让电脑实现360度=0度,旋转炮塔

    我正在制作一个游戏 其中有一个计算机控制的炮塔 炮塔可360度旋转 它使用 trig 找出枪瞄准所需的角度 obj deg 并将枪的当前角度存储在 gun deg 下面的代码以设定的速度旋转枪 if objdeg gt gundeg gun

随机推荐

  • SQL查询优化——表分区

    1 表分区 在建表的时候将表建成分区表 2 好处 a1 提高对数据检索或操作的效率 a2 不同的分区可以保存到不同的表空间 磁盘 提高数据的安全性 a3 可以将数据分到不同的分区 a4 每个分区的数据可以独立的备份和恢复 3 表分区的方法
  • 【计算机科学】【2017.12】图像分类与回归的深度神经网络模型

    本文为意大利特伦托大学 作者 Salim MALEK 的博士论文 共98页 深度学习是机器学习的一个分支 在许多研究领域和实际中都得到了广泛应用 这种持续的发展主要可以追溯到潜在处理设施的可用性和可负担性 例如 仅在十年前 这些设施还没有普
  • np.quantile()详解

    numpy quantile numpy quantile a q axis None out None overwrite input False interpolation linear keepdims False import nu
  • Linux下的虚拟化部署

    文章目录 1 kvm安装条件 2 kvm虚拟化安装 3 kvm虚拟化相关信息 4 手动安装虚拟机 5 虚拟机管理命令 6 虚拟机在linux系统中传输 7 虚拟机快照 8 脚本执行新建 快照 修复虚拟机 9 虚拟机网络配置 1 kvm安装条
  • 硬盘的几点真相

    因为想自己修下硬盘 所以先找了远古时代的笔记本硬盘拆了看看结构 结果发现几个很有意思的地方 首先就是那个 do not cover 的小孔 相信很多人都注意到了硬盘上有个很小的小孔 从外面看进去好像是个微型可调电容 周围一圈文字 do no
  • Matlab 随机森林工具箱的配置使用

    总结一下Matlab随机森林工具箱的配置和使用 配置环境Matlab2019a windows10 vs2017 1 下载Matlab随机森林工具箱 下载地址http www buaapress com cn mzs file detail
  • java持久层框架数据源加密

    学习目标 java持久层框架数据源加密 文章目录 学习目标 1 mybatis框架数据源加密 https www cnblogs com melovemingming p 10699613 html 这里是引用https www cnblo
  • 基于HAL库的stm32的OLED显示屏显示(模拟I2C,四脚,0.96寸)

    参考视频 江科大oled程序移植stm32hal库 freertos学习 cpu使用率 哔哩哔哩 bilibili STM32入门教程 2023持续更新中 哔哩哔哩 bilibili 第一步 STM32CubeMX配置 一 时钟树配置 高速
  • vs2012配置python_Visual Studio 2012 Ultimate 上安装 Python 开发插件 PTVS

    1 我的环境 操作系统 32位 Win7 旗舰版 Service Pack 1 VS版本 Microsoft Visual Studio Ultimate 2012 版本 11 0 50727 1 RTMREL Python解释器版本 Py
  • CAD颗粒密堆积2D插件 球体重力堆积 离散元建模 分子热运动

    插件简介 CAD颗粒密堆积2D插件可用于生成二维状态下重力堆积的随机颗粒 插件可指定投放区域 颗粒的粒径范围 颗粒间的间距 颗粒个数等信息 同时可模拟颗粒弹性及摩擦摩擦系数 插件采用物理引擎对颗粒行为进行模拟 可实现颗粒在力场作用下的堆积
  • c语言小游戏 精简_C语言实现消消乐小游戏

    本文实例为大家分享了C语言实现消消乐小游戏的具体代码 供大家参考 具体内容如下 代码 include include include include include include include include using namespa
  • 线性代数-坐标系变换

    问题描述 已知一个全局坐标系 还有若干局部坐标系 如何将局部坐标系的坐标转成全局坐标系的坐标 反过来又如何进行 这里的坐标系都是直角坐标系 本文通过下面几个方面的研究来回答上面的问题 1 简单示例 2 求解过程 3 nodejs编程验证 简
  • 【数据结构与算法】数据结构知识点总结

    文章目录 前言 一 数组 一 知识点 二 常用操作代码示例 1 声明数组 2 初始化数组 3 访问数组元素 4 修改数组元素 5 遍历数组 6 数组作为函数参数 二 链表 一 知识点 二 常用操作代码示例 1 定义链表节点结构体 2 创建链
  • 从零开始到设计Python+Selenium自动化测试框架-如何开始

    如何开始学习web ui自动化测试 如何选择一门脚本语言 选择什么自动化测试工具 本人已经做测试快5年 很惭愧 感觉积累不够 很多测试都不会 三年多功能测试 最近两年才开始接触和学习自动化测试 打算写一个系列文章 关于如何从零开始到会设计和
  • 服务器修改编码格式,设置服务器编码格式

    设置服务器编码格式 内容精选 换一换 在异构计算架构中 昇腾AI处理器与CPU通过PCIe总线连接在一起来协同工作 Host CPU所在位置称为主机端 Host 是指与昇腾AI处理器所在硬件设备相连接的X86服务器 ARM服务器或者Wind
  • java基础之集合

    集合 基础里的重头戏来喽 一 集合概述 集合和数组的区别 概述 集合是java中用来存放多个 引用数据类型 数据的容器 它是解决了数组的一些弊端的一个多数据容器 他有 的操作集合的方法 比如增加和删除方法 java中集合的体系使用接口和类进
  • RAC重建OCR/Voting disk遇到的一些故障

    author skate time 2010 05 09 我的测试环境 母系统 win2003虚拟软件 vmware3 2 1guest系统 centos4 7oracle db oracle10 2 1 以下是我在重建rac的ocr vo
  • 全球分布式云大会:AntDB超融合流式实时数仓,打造分布式数据库新纪元

    日前 全球分布式云大会北京站在北京金茂万丽酒店举办 亚信科技AntDB数据库受邀参会 会上技术负责人北陌发表以 AntDB超融合流式实时数仓 打造分布式数据库新纪元 为主题的演讲 通过分享AntDB在数据库前沿技术的研发实践 与参会嘉宾一起
  • springboot的安全性

    如何实现 Spring Boot 应用程序的安全性 为了实现 Spring Boot 的安全性 我们使用 spring boot starter security 依赖项 并且必须添加安全配置 它只需要很少的代码 配置类将必须扩展WebSe
  • BM8 链表中倒数最后k个结点

    struct ListNode int val struct ListNode next ListNode int x val x next nullptr class Solution public 代码中的类名 方法名 参数名已经指定