
笔试
文章平均质量分 61
笔试练习题
懒羊羊大王&
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
每日练习(红黑树)
摘要: 红黑树性质:红黑树是一种近似平衡的二叉搜索树,通过颜色约束和路径黑节点数相同保证O(logn)操作复杂度,最长路径可能为最短路径的两倍(D正确)。空树视为合法红黑树,前序遍历不保证有序(A、B错误),红黑树是近似而非完全平衡(C错误)。 红黑树插入:插入操作包括O(logn)查找位置和O(1)旋转/颜色调整,总时间复杂度为O(logn)(B正确)。 红黑树实现:最左/右节点为最小/大值(A正确),头结点非必需(B错误),允许连续黑色节点(C正确),旋转不依赖平衡因子(D正确)。 AVL vs 红黑树原创 2025-08-01 12:04:01 · 563 阅读 · 0 评论 -
每日练习(异常)
本文解析了4道关于C++异常处理的题目。1. 指出未处理的异常可能导致程序崩溃,任何异常都应被处理;2. 说明catch捕获异常后可重新抛出;3. 强调throw抛出指针时需用指针类型捕获;4. 通过代码示例展示异常处理流程。重点包括:异常必须处理、throw/catch类型匹配、异常重新抛出机制等C++异常处理要点。原创 2025-08-01 12:03:17 · 188 阅读 · 0 评论 -
每日练习(map,set模块)
本文主要探讨了C++中map和set容器的特性及使用: map和set的核心区别在于map存储键值对,而set仅存储键。两者底层通常采用红黑树实现,查询时间复杂度为O(logN)。注意set不支持[]运算符访问。 map的键不可修改,但可通过自定义比较函数改变排序规则(默认升序)。map允许键值类型相同。 set具有自动去重功能,可存储对象但需定义比较规则。set元素不可直接修改,默认按升序排列。 实际应用示例展示了如何统计单词频率:使用unordered_map记录词频,通过sort自定义排序(先按频率降原创 2025-07-30 12:21:00 · 1073 阅读 · 0 评论 -
每日练习(二叉搜索树模块)
摘要:本文解析了4道二叉搜索树相关题目。内容涉及:1)二叉搜索树的性质(最左/右节点为最小/大值、中序遍历有序性);2)查找效率(平衡时O(logN),退化为链表时O(N));3)插入操作规则(根据节点值比较确定左右位置)。其中特别指出,二叉搜索树的结构具有唯一性,无法通过图形表示。通过选项分析,明确了各性质的具体适用条件,正确答案分别为D、B、C、A。(149字)原创 2025-07-30 12:20:18 · 227 阅读 · 0 评论 -
每日练习(多态)
本文主要解析了C++中关于多态性、虚函数和抽象类的10道题目。文章指出:1)多态性分为编译时多态(函数重载)和运行时多态(虚函数);2)虚函数是实现动态绑定的关键,需通过基类指针或引用调用;3)纯虚函数使类成为抽象类,不能实例化但可声明指针;4)重载、重写和重定义的区别在于作用域和继承关系。其中特别强调运行时多态不能通过模板实现,抽象类只能用于指针声明而不能实例化对象。正确理解这些概念对掌握C++面向对象编程至关重要。原创 2025-07-28 10:44:01 · 850 阅读 · 0 评论 -
每日练习(继承模块)
本文摘要: 子类对象大小不一定比基类大,取决于基类成员、子类新增成员和虚函数表指针等因素。 继承体现"is-a"关系(如Dog继承Animal),而"has-a"关系(如Car与Tire)应使用组合而非继承。 C++继承特性:class默认private继承,struct默认public成员;子类无法直接访问基类私有成员但实际继承。 函数重载允许同名不同参,但基类与子类同名函数会触发"同名隐藏"规则,子类函数完全隐藏基类版本。 构造/析构顺序:基类原创 2025-07-28 10:43:05 · 686 阅读 · 0 评论 -
每日练习(沉淀中)
本文解析了C++中的模板特化和仿函数相关知识点。在模板特化方面,详细说明了全特化和偏特化的概念,指出编译器在选择函数版本时的优先级顺序(普通函数 > 模板特化 > 模板)。在仿函数方面,分析了四个选项的正确性,指出仿函数与普通函数在性能上无本质区别,但能封装状态使代码更简洁。最后总结了模板声明和实现的规范要求,强调模板定义必须放在同一个文件中以便编译器实例化。原创 2025-07-25 10:19:02 · 827 阅读 · 0 评论 -
每日练习(沉淀中)
本文解析了4道编程题目:1.优先级队列(堆)的运行结果,展示了最大堆和最小堆的区别;2.STL容器特性对比,指出deque适合随机存取和首尾操作;3.迭代器失效问题,分析了vector、list和deque在删除元素时的不同表现;4.两道LeetCode题解:逆波兰表达式求值(使用栈)和数组中第K大元素(使用大顶堆)。文中提供了详细的代码实现和问题解析,重点讲解了数据结构特性和使用场景,帮助理解STL容器操作和算法应用。原创 2025-07-25 10:18:22 · 1098 阅读 · 0 评论 -
每日三题(沉淀中)
本文总结了三个栈相关的算法要点:1) 列表逆置操作中reverse函数的区间是左闭右开,end参数指向最后一个元素的下一个位置;2) 最小栈的实现采用辅助栈同步记录最小值,保证所有操作时间复杂度为O(1);3) 栈的压入弹出序列验证问题,通过将输入向量原地模拟栈操作,通过比较栈顶元素与弹出序列来判断合法性。三个案例分别展示了STL函数特性、栈的经典应用场景和空间优化技巧。原创 2025-07-23 11:11:29 · 308 阅读 · 0 评论 -
每日两题(沉淀中)
摘要:本文分享了两道算法题解法:1) 找出数组中出现次数超过一半的数字,使用哈希表统计频次后遍历判断;2) 电话号码字母组合问题,采用回溯算法生成所有可能的组合。第一题通过unordered_map记录数字出现次数,第二题建立数字-字母映射表后递归回溯求解。两题均需注意边界条件,代码中展示了核心实现逻辑和数据结构应用。原创 2025-07-23 11:10:55 · 110 阅读 · 0 评论 -
每日两题(沉淀中)
本文介绍了两个经典算法题的解法。第一题使用双指针法删除有序数组中的重复项,通过快慢指针遍历数组,将不重复元素前移,时间复杂度O(n)。第二题生成杨辉三角,利用二维数组动态规划,每行首尾为1,中间元素等于上一行相邻两数之和。两个题目分别考察了数组操作和动态规划思想,代码实现简洁高效。原创 2025-07-21 10:03:41 · 162 阅读 · 0 评论 -
每日两题(沉淀中)
本文分享了LeetCode两道关于查找只出现一次数字的题解。第一题使用哈希表统计数字出现次数,找到唯一出现一次的数字;第二题同样采用哈希表方法,但需要返回两个只出现一次的数字,使用vector存储结果。两题都利用了unordered_map的快速查找特性,并注意了其无序存储的特点。代码实现简洁高效,适用于处理类似查找唯一元素的问题。原创 2025-07-21 10:03:11 · 288 阅读 · 0 评论 -
每日两题(沉淀中)
本文介绍了两个LeetCode算法题解:1. 反转字符串中的单词(557题),通过双指针定位单词首尾进行局部反转;2. 找出只出现一次的数字(136题),利用异或运算特性高效求解。代码均使用C++实现,包含边界条件处理和STL容器操作说明。第一题采用逐个单词反转策略,第二题通过位运算实现O(n)时间复杂度。两个解法都体现了对问题特性的深入分析和简洁的编程技巧。原创 2025-07-18 10:07:54 · 158 阅读 · 0 评论 -
每日两题(沉淀中)
本文分享了两个字符串处理算法题解。第一题验证回文串,通过过滤非字母数字字符并统一大小写后双指针比较;第二题每隔k个字符反转前k个字符,使用std::reverse函数实现区间反转。文中介绍了常用的字符判断函数和大小写转换方法,并解释了std::reverse函数的用法。两个解法均采用简洁高效的处理方式,体现了字符串处理的基本技巧和标准库函数的应用。原创 2025-07-18 10:07:10 · 165 阅读 · 0 评论 -
每日一题(沉淀中)
本文实现了一个自定义字符串类MyString,采用深拷贝和深赋值机制。关键实现包括:构造函数动态分配内存并拷贝字符串;拷贝构造和赋值操作符实现深拷贝;重载[]、==、<<等运算符;提供长度计算和C风格字符串转换等功能。测试验证了深拷贝特性(修改原对象不影响拷贝对象)、赋值操作、比较运算等核心功能。实现中注意了内存管理(new/delete配对)、异常处理(下标越界检查)以及const正确性。代码模仿标准库string的部分接口(如c_str()),同时通过友元函数实现流输出操作。该实现展示了C+原创 2025-07-16 18:50:31 · 821 阅读 · 0 评论 -
每日两题(沉淀中)
本文介绍了两个字符串处理编程题解。第一题实现字符串转整数(atoi),处理前导空格、正负号,并通过边界值判断防止整数溢出。第二题计算最后一个单词长度,利用cin遇空格停止特性读取输入,最终输出最后一个字符串长度。两题均展示了C++中字符串处理的常见方法和注意事项。原创 2025-07-15 10:28:14 · 381 阅读 · 0 评论 -
day05
要想求得数最大,那就要优先找you的个数,剩余部分找oo的个数就行。以上就是day05的内容了。原创 2025-07-15 10:27:25 · 188 阅读 · 0 评论 -
day04
本文总结了三个经典算法题解:1) 使用贪心算法和滚动数组计算斐波那契数列最接近值;2) 采用DFS搜索二维矩阵中的单词路径;3) 利用动态规划生成杨辉三角。第一题通过维护三个变量迭代求解,第二题使用深度优先搜索匹配字符,第三题通过二维DP递推构建三角形。这些题目涵盖了贪心、DFS和DP等核心算法思想,是面试中的高频考点,建议反复练习掌握解题思路和实现方法。原创 2025-07-13 17:25:38 · 270 阅读 · 0 评论 -
day03
文章摘要:本文总结了三个编程题解。1)字符串首字母大写转换,利用ASCII码实现字符大小写转换;2)同向双指针/滑动窗口算法求解最短子数组和问题,通过动态调整窗口边界优化时间复杂度;3)贪心算法结合优先级队列处理分鱼问题,每次取最大偶数进行操作。第三题需注意堆的使用和偶数判断。这些题目涉及基础语法、算法优化和数据结构应用,适合面试准备时反复练习。原创 2025-07-13 17:25:00 · 150 阅读 · 0 评论 -
day02
本文总结了三个算法问题的解法:1) 快递费用计算,使用ceil函数或条件判断实现向上取整;2) 最小花费爬楼梯问题,采用动态规划求解;3) 字符串最短距离问题,利用双指针贪心法优化。重点分析了各题的解题思路、状态转移方程和实现细节,指出需加强对动态规划和贪心算法的理解。代码示例展示了具体实现,并强调了反复练习经典面试题的重要性。原创 2025-07-11 13:59:28 · 271 阅读 · 0 评论 -
day01
摘要: 本文分享了三个编程题的解法:1) BC153数字统计,通过枚举和数字拆分(模10/除以10)统计区间内数字2的出现次数;2) 数组交集问题,使用哈希表(数组模拟)高效找出两数组的交集元素;3) 字符串消除问题,利用栈结构模拟相邻相同字符的消除过程。每个解法都包含核心思路、代码实现和关键注意事项,涉及枚举、哈希、栈等数据结构的使用技巧,适合作为面试准备练习题。原创 2025-07-11 13:58:43 · 242 阅读 · 0 评论