logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C/C++栈与队列应用面试题

本文介绍了四道经典栈/队列算法题的解法:1. 用双栈模拟队列,通过inStack和outStack分工实现O(1)均摊时间的队列操作;2. 使用栈验证括号匹配,通过压入对应右括号的方式检查合法性;3. 设计最小栈,采用辅助栈同步存储最小值实现O(1)时间获取最小值;4. 滑动窗口最大值问题,利用单调递减队列维护窗口内有效最大值。这些题目考察了栈和队列的核心特性,涉及空间换时间、单调结构等典型解题技

文章图片
#c语言#c++#java +1
C/C++数组与字符串高频面试题

本文摘要了两类常见算法面试题:数组和链表操作。数组部分包含四个经典问题:1)双指针法原地删除有序数组重复元素(O(n)时间,O(1)空间);2)三次反转法实现数组旋转;3)纵向扫描求字符串最长公共前缀;4)哈希表优化两数之和问题。链表部分重点讲解单链表反转的两种实现:迭代法(三指针,O(1)空间)和递归法(O(n)空间)。这些问题考察了双指针、哈希表、递归等核心算法思想,以及边界条件处理能力,是面

文章图片
#算法#数据库#c++
C/C++二叉树核心面试题

本文介绍了二叉树的四种常见算法:1. 三种遍历方式(前序/中序/后序)的递归和迭代实现,其中迭代法使用栈模拟递归过程;2. 求二叉树最大深度的递归和BFS解法;3. 通过中序遍历验证二叉搜索树的合法性;4. 使用BFS实现二叉树的层序遍历。所有算法的时间复杂度均为O(n),空间复杂度最坏为O(n)。这些题目考察了对二叉树结构的理解、递归与迭代转换能力,以及BFS/DFS的应用,是面试中的高频考点。

文章图片
#c语言#c++#java
C/C++链表专项面试题

本文摘要了4个经典链表算法题目及解法:1. 反转单链表(迭代法三指针、递归法);2. 检测环形链表并返回入口节点(Floyd快慢指针算法);3. 合并两个有序链表(虚拟头节点+双指针);4. 查找链表倒数第k个节点(快慢双指针)。所有解法均给出C++实现代码,分析时间/空间复杂度,并指出面试常见延伸考点。这些题目涵盖了链表基础操作和双指针技巧,是面试高频考点。

文章图片
#c语言#c++#链表
C/C++哈希表与字符串进阶面试题

本文总结了四道高频字符串算法题的解题方法: 字母异位词分组:使用哈希表以排序后的字符串为key进行分组,时间复杂度O(nklogk) 无重复字符的最长子串:滑动窗口+哈希表记录字符位置,时间复杂度O(n) 第一个只出现一次的字符:两次遍历+计数数组,时间复杂度O(n) 字符串转整数:逐步处理符号位和数字转换,注意溢出判断,时间复杂度O(n) 这些题目考察了哈希表、滑动窗口、数组计数等技巧,是面试中

文章图片
#散列表#c语言#c++
C/C++排序算法专项面试题

摘要:本文介绍了三种经典排序算法及其应用。快速排序采用分治思想,通过基准值划分数组,优化手段包括三数取中、小区间插入排序等。归并排序通过分治和合并实现,可用于求解逆序对问题。堆排序通过建堆和调整实现,能高效解决TopK问题。文章还分析了排序算法的稳定性,指出冒泡、插入等是稳定的,而选择、快排等不稳定,并给出了实际选型建议,如快排适合一般场景,归并适合稳定排序,堆排序适合TopK问题。

文章图片
#排序算法#c语言#c++
数据的「快递打包」艺术:一文吃透应用层自定义序列化(附手写 C++ 实现)

本文介绍了自定义序列化的核心原理与实践方法。首先解释了序列化与反序列化的概念,即将内存对象与二进制字节流相互转换的过程,并对比了JSON/Protobuf等通用方案的局限性。重点讲解了自定义序列化的五大设计要点:协议结构(包头+包体)、字节序统一、内存对齐处理、兼容性设计和变长数据处理。通过C++代码示例演示了如何正确实现一个用户信息结构体的序列化/反序列化过程,避免直接memcpy结构体的常见错

文章图片
#c++#java#linux +1
C++中的继承(上)

本文摘要: 本文系统介绍了C++中的继承机制,包括继承的定义(派生类复用基类特性并扩展功能)、三种继承方式(public/protected/private)对成员访问权限的影响,以及基类与派生类的对象赋值转换规则。通过Person基类和Student派生类的代码示例,演示了公有继承下的构造函数调用、成员访问及方法扩展。重点剖析了公有继承中"向上转型"的三种形式:对象赋值(发生

文章图片
#c++#开发语言
C++中的继承(中)

本文介绍了继承中的两个关键概念:作用域和派生类默认成员函数。在继承体系中,基类和派生类具有独立的作用域,派生类成员会隐藏基类同名成员(包括变量和函数),需通过作用域解析符访问被隐藏成员。派生类的6个默认成员函数(构造、拷贝构造、赋值重载、析构等)会自动调用基类对应函数:构造函数按基类→派生类顺序执行,需注意基类构造函数的调用;析构函数则按派生类→基类顺序执行,各自只清理对应部分的资源,不会重复释放

文章图片
#c++
C++中的继承(下)

文章摘要: 友元与继承:友元关系是单向且不可继承的。基类的友元函数/类只能访问基类的私有成员,不能自动访问派生类的私有成员。通过代码示例说明,派生类对象传递给基类友元函数时,仅能访问基类部分。 菱形继承问题:多继承时若形成菱形结构(如助教同时继承教师和学生类),会导致顶级基类成员的二义性和数据冗余(如重复存储年龄属性)。 解决方案——虚拟继承:在中间派生类继承时添加virtual关键字(如clas

文章图片
#c++#开发语言
    共 55 条
  • 1
  • 2
  • 3
  • 6
  • 请选择