当时做这一题的时候就感觉有点繁琐,其实也不难。感觉面试官就是想看看自己的基础水平在哪里。
当自己不想写,有必须要写的时候才发现很繁琐。原来打算20行都不要,却越写越多,有的地方居然挤不下。
最后只能时间到了,我还在纠结,因为给的是5分钟的时间。我自己也没想到居然没搞定。我还介绍了思路,但显然不是面试官想要的结果。他认为时间应该是绰绰有余的。
回来之后痛定思痛!自己静下心来,慢慢写,10分钟,测试成功。代码如下,希望看官能与我交流。
pnode merge_list(pnode L,pnode R) { if (L==NULL) { return R; } else if (R==NULL) { return L; } else { pnode head=NULL,p=NULL; head=p=new node; if (L->data<R->data) { head->data=L->data; L=L->next; } else if (R->data < L->data) { head->data=R->data; R=R->next; } else { head->data=L->data; L=L->next; R=R->next; } while(L&&R) { p->next=new node; if (L->data<R->data) { p->next->data=L->data; L=L->next; } else if (R->data < L->data) { p->next->data=R->data; R=R->next; } else { p->next->data=L->data; L=L->next; R=R->next; } p=p->next; } while (L) { p->next=new node; p->next->data=L->data; L=L->next; p=p->next; } while (R) { p->next=new node; p->next->data=R->data; R=R->next; p=p->next; } return head; } }
上面的实现有不少漏洞,甚至是错误的,比如简单的处理为 return R,return L 。这是导致内存泄露的源泉!!
现在以面向对象的方式再次实现如下,欢迎批评指正。
void list_::push_back(const int& value) { if (this->tail_==NULL) { this->head_=this->tail_=new node; this->tail_->data=value; } else { this->tail_->next=new node; this->tail_->next->data=value; this->tail_=this->tail_->next; } } void list_::merge_list(const list_& L,const list_& R,list_& result) { if (L.head_==NULL) { result= R; } else if (R.head_==NULL) { result= L; } else { pnode pL=L.head_; pnode pR=R.head_; while(pL&&pR) { if (pL->data < pR->data) { push_back(pL->data); pL=pL->next; } else if (pR->data < pL->data) { push_back(pR->data); pR=pR->next; } else { push_back(pL->data); pL=pL->next; pR=pR->next; } } while (pL) { push_back(pL->data); pL=pL->next; } while (pR) { push_back(pR->data); pR=pR->next; } } }
其中result =R用到了赋值操作符,其实现如下:list_& list_::operator=(const list_& from) { copy(from); return *this; } void list_::copy(const list_& from) { pnode p=from.head_; while (p) { push_back(p->data); p=p->next; } }欢迎批评指正!!
相关推荐
UniApp实战:5分钟搞定极光推送(JG-JPush)从配置到消息测试全流程
本文详细介绍了如何在UniApp中快速集成极光推送(JG-JPush),从基础配置到核心代码实现,再到双端调试技巧和高级功能扩展。通过5分钟全流程指南,开发者可以轻松实现消息推送功能,提升应用的用户触达率。
C语言链表操作
1.2 编写程序,在第1题(第1题:编写程序,建立2个带头结点单链表,输入若干整数将正整数插入第1个单链表,将负整数插入第2个单链表,插入前和插入后单链表保持递增或相等次序,显示2个单链表,最后销毁。程序不可存在内存泄漏。)基础上合并2个单链表,合并前后单链表保持递增或相等次序,显示合并前后单链表。注意不可存在内存泄漏。。 输入格式: 若干整数。 输出格式: 每个单链表输出占一行,元素间用分隔符分隔;共3行 输入样例: 100 2 3 -2 -8 -6 -9 -10 50 2 -1 输出样例: 2->
生信物种注释软件Kraken2+Bracken的安装与使用
一、软件安装与数据库下载 1.Kraken2安装 Kraken2是一个基于k-mer算法的高精度宏基因组序列分类软件,能够快速的将测序reads进行物种分类。 使用conda一键安装,要先安装好anaconda或者miniconda conda install -y kraken2 输入krakek2 --help 出现如下所示帮助文档,则表示安装成功。 2.Bracken安装 bracken是一种从宏基因组数据中高度准确的计算物种丰度的统计方法。 同样使用conda一键安装 conda install -
微软暑期实习笔试 2021.4.11题目记录
1,垃圾车收垃圾哪个用时最长? 输入:int D[],String T[] 输出:用时最长时间 int D记录了起始点到房子一用时,房子一到房子二用时,以此类推 T记录了每个房子中的垃圾类型,例如"PGMP"即收塑料plastic垃圾两份,玻璃Glass一份,m一份,装载一份垃圾用时1分钟 有三台垃圾车,分别来收这三种垃圾,从起点出发收完回到起点即为结束 我的思路:总用时=(2*到最远房子用时)+垃圾份数 2,车子是否相似? 输入:Stringcars [] 输出:int similar.
历史预测+LLM双杀!DriveGPT4-V2闭环驾驶配置避坑指南
本文深入探讨了DriveGPT4-V2在工程化部署中的核心挑战与解决方案。通过融合历史轨迹预测与大语言模型,该模型旨在实现更可靠的端到端自动驾驶。文章详细解析了从环境配置、多模态Token对齐、轻量控制头设计到训练优化与闭环仿真验证的全流程,为开发者提供了一份详实的避坑指南。
【100%通过率】华为OD机试真题2026双机位C卷 C语言 实现【加密算法】
【100%通过率】华为OD机试真题2026双机位C卷 Python&JS 实现【加密算法】有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下
数据结构与算法
链表 微软暑期实习笔试题 合并两个有序单链表https://blog.youkuaiyun.com/calmreason/article/details/7804774 栈 表达式求值https://blog.youkuaiyun.com/calmreason/article/details/78163268 队列 模拟银行排队叫号https://blog.youkuaiyun.com/calmreason/arti...
[网络安全自学篇] 八.Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster原理详解
Web渗透技术的核心是发现Web漏洞,发现漏洞有手工和软件自动化扫描两种方式。对于用户验证漏洞、用户凭证管理问题、SQL注入等常见Web漏洞,都可以通过Web扫描器进行扫描。各个扫描器的功能和结果都不同,常见的包括HScan、HScan、X-Sccan、Acunetix Web Vulnerability Scanner、Jsky、Router Scan扫描工具等。本文主要讲解三个常见的Web漏洞扫描工具,分别是NMapp、ThreatScan和DirBuster。希望这篇基础性文章对你有所帮助.
2022微软暑期实习笔试
微软暑期实习笔试
【应用】打造你的安全本地AI购物助手:OpenClaw + 淘宝MCP部署全攻略
本文介绍了在Ubuntu虚拟机中配置OpenClaw连接Windows宿主机的淘宝MCP服务的两种方案。核心原理是通过修改MCP服务监听地址或SSH隧道转发,实现跨网络访问。方案1推荐修改MCP服务绑定0.0.0.0并配置防火墙放行端口,适合长期使用;方案2通过SSH隧道转发,适合临时测试。文章详细说明了环境准备、配置文件修改及两种互通方案的具体实施步骤,重点解决了虚拟机与宿主机网络互通的关键问题。
Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device
Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device, Quartus的安装过程不同于ISE/vivado的安装。“Current license file does not support”这种情况多出现在高版本的quartus中综合很久以前的代码,使用很早型号的FPGA或是CPLD。对于这种情况,就得在官网或是其他网站上下载包含所需Device的库文件。
2022届暑期实习笔经面经总结,已拿微软微信offer
背景介绍:某211大三学生,之前有一段大厂的边缘部门的日常实习,这次暑期实习投递的主要是国内各大厂在深圳的部门,还有一些在北京上海的外企。国内各公司投递的岗位全都是后台开发,外企则是概念比较宽泛的swe/sde 作者:Na1ve 链接:https://www.nowcoder.com/discuss/648274?source_id=discuss_experience_nctrack&channel=-1 2021年C/C++Linux服务器开发/后台架构师知识体系整理(持续更新中.
从 CDS 接口到 ABAP 运行时,深入理解 SAP RAP Custom Entity
CDS Custom Entity 是一种非 SQL、瞬态的 CDS 实体,不依赖 HANA SQL 读取数据,而是通过 ABAP 类实现查询逻辑(如 RFC、OData、BAPI 等)。它在 CDS 层定义数据契约(字段、键、关联、注解),由 @ObjectModel.query.implementedBy 指向实现 IF_RAP_QUERY_PROVIDER~SELECT 的类,真正执行数据获取。适用于无法用 SQL 表达的数据源,如远程系统或 API。其核心是“接口 + 实现”模式,运行时由 RAP
java实现两个有序单链表合并
本次分享的事两个有序单链表的合并, 遍历方法 递归 非递归 节点类 /** * @auther: lawt * @date: 2018/11/4 08 * @Description: 结点信息 */ public class Node { /** * 为了方便,这两个变量都使用public,而不用private就不需要编写get、set方法了...
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
Outlook Express 6 (OE6) for Win7/Win8/Win10
英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。
微软2013暑期实习笔试回忆
一共是20道选择题(有可能多选),答对加分,答错扣分,所以了不敢乱选啊,现在开始回忆一些题目: 1: 有1000瓶水,其中1瓶是有毒的,小老鼠如果喝了有毒的水会在一个星期后死掉,问至少需要多少只小老鼠来做实验,才能够在一星期后选出有毒的一瓶水。 我选的是10,2^10=1024>1000,原理跟1:N选择器一样的。 2: 1条线把平面划分为2部分,2条线把平面划分为4部分(任意...
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
微软暑期实习笔试题解析
1、考察函数调用 cdecl 调用又称为C调用约定,是C语言缺省的调用;定义语法是:int _cdecl function(int a, int b) 参数由右向左压入堆栈,函数本身不清理堆栈,调用者负责清理;由于这种变化,C调用约定允许参数的个数是不固定的。 stdcal很多时候又被称为pascal调用约定,pascal使用的函数调用约定就是stdcall;定义语法:int _stdcal
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
微软-2020暑期实习生招聘-笔试
文章目录前言第一题 The War第二题 Archer第三题 Need for Speed 前言 (1)微软2020暑期实习生招聘笔试题于2020/3/25 晚上7点到9点之间考试,考试时长90分钟,三道编程题,纯英文。 (2)使用的平台是mettl,整体和leetcode风格类似,会给出方法和形参。基本主流语言都涵盖。 (3)只可以使用一台电脑(会检测有没有连接第二屏),需要检测摄像头和麦克风...
RabbitMQ 面试题
你发一条消息,在网络上并不是一个整体飞过去的。如果消息比较大,RabbitMQ 的底层协议会把它切成多个数据包(帧),按顺序发送,Broker 收到后再拼起来。假设线程 T1 和 T2 同时用同一个 Channel 发消息:T1 发消息 A,被切成三个帧:[A1] [A2] [A3]T2 发消息 B,也被切成三个帧:[B1] [B2] [B3]如果没有任何保护,这两个线程的帧可能交错到达 Broker,变成 [A1] [B1] [A2] [B2] [A3] [B3]。
smart-tunnel-ai · 隧道/高速智慧化 AI 应用项目
面向的工程师:一个能跑通、能改、能讲清楚的 Spring Boot + Spring AI 项目。:它不是「调了个 ChatClient 输出一句话」,而是把切块策略、增量入库、来源溯源、防幻觉、工具调用、结构化输出、评估集、密钥守卫、CI 护栏这些工程问题都落到了代码里。每一处都能指向具体类讲取舍。详见。
LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)
LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等) 题目描述: 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: - s = s1 + s2 + ... + sn - t = t1 + t2 + ... + tm - |n - m| <= 1 - 交错 是 s1 + t
Spring 原理高频面试题全解:Bean 生命周期、三级缓存与 @Transactional 失效(2026 招聘 JD 真题复盘)
按 2026 招聘 JD 与一线面经整理 10 道 Spring 高频题:Bean 生命周期与扩展点顺序、AOP 代理生成时机、三级缓存为何必须三级、构造器注入循环依赖为何无解、@Transactional 六类失效与自调用修复三法、REQUIRES_NEW 连接池耗尽风险、事件总线同步语义与 @TransactionalEventListener、自动配置从 spring.factories 到 imports 的演进、自定义 Starter 三步走,附速查表与三条追问链。
Docker镜像优化:面试高频翻车的简单题
本文深入探讨Docker镜像优化的两大核心层面:体积优化与构建速度优化。指出仅关注镜像瘦身(如使用Alpine)是表面理解,真正关键在于平衡空间与时间——在DevOps流水线中,构建速度常优先于体积。文章详解了多阶段构建、缓存利用、.dockerignore文件等高效策略,并揭示Alpine镜像虽小但存在兼容性、依赖缺失等风险,强调需结合业务场景权衡选择。掌握这些细节,方能在面试中展现真实技术深度,脱颖而出。
AI 全栈开发工程师【二面】
传统的大模型应用通常采用:用户输入 → Prompt → LLM → 输出结果这种模式适合简单问答、文本生成和信息提取等任务。但对于复杂业务,仅依靠一次模型调用往往不够。例如,用户提出:帮我查询某个地区近三个月销量最高的产品,并分析销量变化原因。理解用户需求。拆解查询条件。调用数据库或外部工具。获取查询结果。分析数据。生成最终报告。Agent 的核心价值在于让大模型不仅能够生成文本,还能够根据任务目标进行规划、调用工具、观察执行结果,并根据结果调整后续行动。
【AI Agent面试系列】上下文管理1
工具返回价值密度最低、体积最大(常占 30%~60%),清理它收益最高、损失最小。摘要对话会丢语义细节,代价更高。按"价值密度从低到高"排序,不是按"体积从大到小"。

682



被折叠的 条评论
为什么被折叠?



