单向链表,找出倒数第m个

单链表的创建,查找,排序,插入,删除 1、创建一个带头结点的单链表(头指针为head),且遍历此链表(输出链表中各结点的值); 2、查找单链表中的第i个结点,并输出结点元素的值; 3、在单链表中的第i个结点前插入一个结点值为e的正整数(从外部输入); 4、删除单链表中的第j个结点; 5、将单链表中的各结点就地逆序(不允许另建一个链表); 6 查找线性表中的最大元素并输出 7 将线性表中的元素按升序排列; 立即下载

 题目:

单向链表,长度未知,(方便说明,假设为n个),找出倒数第m个

 

分析:

大众知道2个,我知道4个。

 

[大家知道的]

1,遍历一次,查出链表长度,n;再次遍历,走n-m步,停止。

时间复杂度:n+(n-m);

 

2,两个指针:p在前面走,走m步之后,后面的指针q跟着走;当p遇到tail的时候,q停止,这时候q刚好指向m;

时间复杂度:n+(n-m);

 

[希望知道的]

3,和面试官说:遇到这样需求的时候,我们最好能够做一个双向链表bi-direction linked list,这样从head倒走m就好了;

虽说这个是取巧做法,但是这句话肯定要向面试官说,表明我做了分析;他肯定要接着问其他的方案,看下面。

时间复杂度:m;

 

4,三个指针。p直接前行m,如果到尾,无解(同上面的三个解法)。

否则,q指向这里;p再次前行m:

1) 如果没到尾,r=q; q=p;平继续前行;

2) 如果只走了k步就到尾,那么r前行k步,指向的就是m;

时间复杂度:n+(n%m)+k,  k小于m



本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/sandyzhs/archive/2008/11/11/3274499.aspx

如何设计QR反激变换器 摘要:本文分析了基于GaN技术的PD适配器市场现状,重点探讨了准谐振反激变换器(QR Flyback)的工作原理及设计方法。文章首先介绍了反激变换器的三种工作模式(CCM、DCM、CRM/QR)及其特点,指出QR模式通过谷底开通技术能显著降低开关损耗。随后以65W适配器为例,详细阐述了变压器参数设计流程,包括匝比确定、原边电感计算和绕组匝数设计等关键步骤。文章强调QR反激变换器凭借高效率、小体积和低成本优势,已成为20W-65W PD适配器的主流拓扑方案,配合GaN技术进一步提升了功率密度和便携性。 阅读详情

相关推荐

大模型训练(1):流水线并行

Gpipe的方法是,在训练时计算和运用的是micro-batch里的均值和方差,但同时持续追踪全部mini-batch的移动平均和方差,以便在测试阶段进行使用。流水线并行的核心思想是:在模型并行的基础上,进一步引入数据并行的办法,即把原先的数据再划分成若干个更小的batch,分批送入GPU进行训练,算一部分就让下一个GPU动起来。从实验结果可知,在关掉NVlinks的情况下,Gpipe一样也能实现随着GPU数量的增加,训练速度也增加的效果。前文说过,随着模型的增加,每块GPU中存储的中间结果也会越大。

呆呆象呆呆的博客 1968

笔试题&面试题:设计一个复杂度为n的算法找到单向链表倒数第m个元素

设计一个复杂度为n的算法找到单向链表倒数第m个元素.最后一个元素假定是倒数第0个. 提示:双指针查找 相对于双向链表来说,单向链表只能从头到尾依次访问链表的各个节点,所以如果要找链表的倒数第m个元素也只能从头到尾进行查找,在查找的过程中,设定两个指针,其中p指针指向当前访问的节点,q指针指向p之前的节点,且两者之间相距m个节点,这样,当p指针指向最后一个节点时,那q指针指向的元素就是倒

laoniu_c的专栏 3586

OpenStack 8 节点生产级高可用(HA)集群实施文档

本文详细介绍了生产级高可用OpenStack集群的架构设计与实施方案。通过采用3节点控制集群(HAProxy+Keepalived)、2节点计算资源池和3节点Ceph分布式存储,实现了控制平面、计算资源和存储系统三个层面的高可用。方案重点阐述了VIP漂移、MariaDB Galera集群、RabbitMQ镜像队列等关键组件的配置方法,并提供了完整的部署流程和故障验证方案。该架构确保任意单节点故障不会影响平台整体可用性,满足生产环境对稳定性、扩展性和可维护性的要求,为构建无单点故障的OpenStack生产环境

彭大帅的博客 780

查找单向链表倒数第m个

 绝对的原创。欢迎转载,转载时请标明出自hisense:[http://blog.youkuaiyun.com/sandyzhs]  题目:单向链表,长度未知,(方便说明,假设为n个),找出倒数第m个 分析:大众知道2个,我知道4个。 [大家知道的]1,遍历一次,查出链表长度,n;再次遍历,走n-m步,停止。时间复杂度:n+(n-m); 2,两个指针:p在前

Hisense的专栏 2259

Codesys 3.5报警功能配置保姆级教程:从变量定义到确认方式(含REF/ACK详解)

本文详细介绍了Codesys 3.5报警功能的配置流程,从变量定义到确认方式的选择,特别解析了REF和ACK两种确认方式的底层逻辑。通过实战案例和代码示例,帮助工程师快速掌握报警系统的搭建与调试技巧,提升工业自动化项目的可靠性。

weixin_29245767的博客 458

从原理到代码:一文搞懂LFM信号脉冲压缩在Matlab中的实现

本文深入解析了LFM信号脉冲压缩的核心原理与Matlab实现方法。从线性调频信号的数学表达、时频特性入手,详细讲解了如何构建多目标回波仿真环境,并重点阐述了匹配滤波器的频域实现算法。文章提供了完整的、可运行的Matlab代码,涵盖信号生成、噪声添加、脉冲压缩及性能评估等关键步骤,并探讨了加窗处理、参数选择等工程实践中的考量,为雷达信号处理的学习与实践提供了清晰指南。

weixin_29063035的博客 414

找出单向链表的倒数第m个元素

相对于双向链表来说,单向链表只能从头到尾依次访问链表的各个节点,所以如果要找链表的倒数第m个元素也只能从头到尾进行查找,在查找的过程中,设定两个指针,其中current指针指向当前访问的节点,previous指针指向current之前的节点,且两者之间相距m个节点,这样,当current指针指向最后一个节点时,那previous指针指向的元素就是倒数第m个元素,程序的处理过程如下:elemen

zhongteng的专栏 1317

Open5GS实战指南:Ubuntu 22.04环境下的5G核心网快速部署

本文提供Open5GS在Ubuntu 22.04环境下部署5G核心网的实战指南,涵盖环境准备、MongoDB配置、核心组件安装、WebUI部署及网络调优等关键步骤。通过详细的安装教程和常见问题解决方案,帮助开发者快速搭建开源5G核心网测试环境。

weixin_29202213的博客 537

构建一个单链表,并把第m个节点到第n个结点之间的元素进行逆置

给定一个单链表,反转其中位置 m 到 n 的元素。 说明: 1 ≤ m ≤ n ≤ 链表长度。 输入: 1->2->3->4->5->NULL, m = 1, n = 3 输出: 1->4->3->2->5->NULL 要求空间复杂度为O(1) #include <stdio.h> typedef struct LinkNod...

RSMung的博客 1376

Python与numpy版本兼容性排查指南

本文详细解析了Python与numpy版本兼容性问题,提供了快速诊断和解决版本冲突的实用方法。通过查看版本信息、使用官方兼容性对照表以及降级或升级环境等方案,帮助开发者有效避免常见的报错问题,如'ImportError'和'AttributeError'。文章还介绍了使用虚拟环境和requirements.txt等工程实践,确保项目依赖的稳定性。

weixin_29089057的博客 319

华为OD机考双机位C卷 - 员工派遣 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 员工派遣 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1032

单向链表的第N个节点前插入一个节点

题目:在一个单向链表的第N个节点前插入一个节点。 我们平常的想法是从头结点开始遍历,找到第N-1个结点,然后插入结点。但本题并没有给出头结点,所以我们无法通过遍历找到要插入的位置,所以我们需要转变思想,目前只知道第N个结点,如果在第N个结点后插入一个结点就很简单。假设要插入的结点M,第N个结点为结点N。如果先将M插入到N结点后,如果能将两个结点调换那就是实现了将M插入到了N结点前。 本题解题的关键...

ymlsd的博客 4286

零基础教你学RDMA驱动开发--第8篇:队列对(QP)、完成队列(CQ)与工作请求(WR)机制剖析

本文深入剖析了RDMA(远程直接内存访问)中的核心机制:队列对(QP)、完成队列(CQ)和工作请求(WR)。QP作为通信端点包含发送队列(SQ)和接收队列(RQ);WR是用户提交的操作指令,转换为工作队列元素(WQE)后由网卡异步执行;CQ则提供完成通知机制。文章详细介绍了三者的协作原理,包括QP状态机、WR提交方式、CQ轮询机制,以及关键的信号控制技术(Signaled Mode)来优化性能。同时对比了SEND/RECV和RDMA WRITE两种模式的差异,提供了调试技巧和最佳实践。这些机制共同构成了RD

amy_mhd的博客 156

给定一个单向链表(长度未知),请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素。实现这个算法,并为可能出现的特例情况安排好处理措施。“倒数第m个元素”是这样规定的:当m=0时,链表的

给定一个单向链表(长度未知),请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素。实现这个算法,并为可能出现的特例情况安排好处理措施。“倒数第m个元素”是这样规定的:当m=0时,链表的最后一个元素将被返回: #include #include #include struct listElementType {     int data;     listEl

JK0803_wantao的专栏 4123

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

《算法之美》の链表问题の获得链表中倒数第m个元素

问题: 给定一个单向链表,设计一个时间优化并且空间优化的算法,找出该链表的倒数第m个元素。实现您的算法,注意处理相关的出错情况。m定义为当m=0时,返回链表最后一个元素。   解答: 这是一个难题,因为单向链表只能正向遍历,这个问题需要根据元素与链表尾的相对位置来找出该元素,但是当发现链表尾时,没有简单的办法回溯到倒数第m个元素。   我们需要的是倒数第m个元素

ASCE1885 2676

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

大杂烩 -- 查找单向链表倒数第m个元素

基础大杂烩 -- 目录 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  1.输入并查找   方案:头插法,正向查找第m个元素。 import java.util.Scanner;   public class Main {       /**      * @param args      */     public...

weixin_33851604的博客 94

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

笔试题&面试题:设计一个复杂度为n的算法找到单向链表倒数第m个元素

设计一个复杂度为n的算法找到单向链表倒数第m个元素.最后一个元素假定是倒数第0个. 提示:双指针查找 相对于双向链表来说,单向链表仅仅能从头到尾依次訪问链表的各个节点,所以假设要找链表的倒数第m个元素也仅仅能从头到尾进行查找,在查找的过程中,设定两个指针,当中p指针指向当前訪问的节点,q指针指向p之前的节点,且两者之间相距m个节点,这样,当p指针指向最后一个节点时,那q指针指向的元素就...

weixin_34375233的博客 170

单向链表中的一些算法

1. 在一个单向链表中,寻找链表中间节点。 使用两个指针,快指针每次步进为2,慢指针每次步进为1。当快指针到达链表尾部时,慢指针指向的就是链表的中间。   Node findMiddleNode(Node head) { if (head == null) return head; Node p1 = head; Node p2 =...

eriol的思考空间 148

用单链表实现查找(获取)倒数第m个元素(转自IT博客网chlclan的博客)

面试题。知道肯定有简便算法,但当时只想到两遍循环这种超基础算法。。。回来找了一下,列出其中一种。原文地址:http://www.cnitblog.com/chlclan/archive/2006/06/23/12767.html 用单链表实现查找(获取)倒数第m个元素,当m=0时就是指单链表最后一个元素。最佳算法之一: 用两个指针,一个指向当前遍历的元素,CurPos,另外一个指向

iamyina的专栏 1199

单向链表的几道题

单向链表的几道题 1. 转置单向链表 (也就是反序,注意链表的边界条件并考虑空链表)。 #include <stddef.h> struct listtype { int data; stru...

aezympxj84131的博客 193
上一篇: 排序算法的稳定性
下一篇: n阶幻方的构造
zzulp
博客等级 码龄19年 464粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值