- 博客(39)
- 收藏
- 关注
原创 24年美团秋季笔试题
摘要 #254题"小美的密码"要求统计字符串长度分布,通过记录各长度字符串数量,快速计算密码的可能位置范围。代码使用数组记录长度频率,最后通过遍历数组得出结果。 #255题"小美的数组删除"考察有序集合应用,维护未出现的最小非负整数(mex)。关键思路是删除元素时mex只会减小或不变,通过枚举删除数量并更新mex来求得最小值。代码使用map统计元素频率,初始计算mex后,在删除过程中动态调整mex值,最终取最小运算结果。
2025-07-07 21:55:57
301
原创 24年OPPO秋季笔试题
本文介绍了三个编程问题的解法: 小欧过河:寻找两个1之间最多0的数量。通过在数组两端添加1并遍历数组,记录最大间隔。 小欧的数组划分:使用贪心算法分段,确保每段按位或结果小于k。若单个元素超过k则直接返回-1。 小欧的子序列数量:采用动态规划统计"1145"子序列数量,通过维护三个状态变量分别记录"11"、"114"和"1145"的出现次数。 所有解法均通过示例测试,时间复杂度为O(n)。
2025-07-03 21:54:24
191
原创 24年京东秋季笔试题
本文摘要: 牛牛的位置问题:通过方向矩阵和方向索引控制移动,处理左右转向逻辑,最终计算坐标位置。 和为k的序列对数量:使用哈希表记录元素出现次数,遍历数组时统计满足条件的对数,考虑元素相等情况。 生成指定数组的最少操作次数:计算每个元素所需的最小操作步数(基于二进制位分析),通过相邻元素差值累加得到总操作次数。 三个问题分别展示了方向控制、哈希表应用和位运算分析的解题思路。
2025-07-02 21:58:34
285
原创 24年秋季快手笔试题
本文包含两个算法题目: 有效括号问题:判断括号字符串是否有效,并计算有效括号对数。使用栈结构进行匹配检查,处理三种不匹配情况。优化点包括先判断字符串长度是否为偶数,以及利用哈希表快速匹配括号对。 最长滑道问题:在矩阵中寻找最长递减路径。初始暴力DFS解法因重复计算导致超时,优化后采用记忆化技术存储已计算路径的最大值,避免重复搜索。通过方向数组处理四个移动方向,时间复杂度优化为O(n^2)。 两题均展示了算法优化思想:有效括号利用预处理和哈希表提升效率;最长滑道通过记忆化剪枝减少重复计算。
2025-07-01 21:50:17
418
原创 C++STL(二)类模板
本文介绍了C++中类模板的基本概念和使用方法。首先,类模板的声明形式为template<class 类型形参1,...> class 类模版名 {...};,并通过示例展示了如何定义和使用类模板。类模板必须通过类型实参实例化后才能使用,且成员函数在调用时才会被实例化。文章还讨论了类模板的静态成员、递归实例化、全局特化、局部特化以及类型形参的缺省值。全局特化可以针对特定类型重新定义类模板,而局部特化则允许对部分类型进行特化。类型形参的缺省值可以在实例化时提供默认类型,简化代码编写。
2025-05-21 21:48:38
704
原创 C+++STL(一)
本文探讨了C++中宏和函数模板的使用及其优缺点。C++作为静态类型语言,虽然效率高且类型安全,但编写通用代码时需为不同数据类型重复实现相同功能。宏可以摆脱类型限制,但缺乏类型检查,且代码可读性差。通过宏构建通用函数框架,虽然解决了部分问题,但仍存在可读性不足的缺陷。函数模板则提供了更好的解决方案,允许定义通用函数,并通过实例化生成具体函数实体。编译器对函数模板进行两次编译,确保代码的正确性。此外,函数模板支持隐式推断类型实参,简化了代码编写。总体而言,函数模板在保持类型安全的同时,提供了更高的代码复用性和可
2025-05-19 21:51:48
779
原创 网络编程(一)
网络编程:通过代码网络收发数据网络原理:TCP 三次握手,四次挥手,滑动窗口,慢启动,拥塞控制,超时重传,延迟确认,ARP,ICMP,IGMP,TCPdump/wireshark,FD分配机制,epoll原理,网关经验:UDP的应用,
2025-02-17 21:26:13
670
原创 代码随想录第十九天|动态规划(3)
今天其实有两个新知识,一个是在完全背包中与01背包不同的是,内层循环的循环不同,完全背包是要从容量小到大遍历,以多次取物品进去。第二个是完全背包中,排列和组合问题,组合问题就是先物品后容量,排列问题就是先容量后物品。
2024-08-03 15:26:25
627
原创 代码随想录第十八天|动态规划(2)
LeetCode 1049. 最后一块石头的重量 II思想:本题跟上题十分相似,可以借助上一题的想法,两块石头互相比,那么就可以更改为找出两个总和差不多的子集合,然后作差,得到最小的可能重量。思想跟上题差不多就不过多赘述了。这里注意还是dp数组的大小取舍。i++) {j--) {时间复杂度:O(n^2),空间复杂度:O(n)。动态规划中的01背包问题,最最最最最最主要的就是要把问题抽象成01背包问题,什么是背包,什么是物品,物品的重量是什么,物品的价值又是什么。之后就好做了。
2024-08-02 16:57:53
974
原创 代码随想录第十二天|二叉树(5)
思想:本题的意思其实是,将一个二叉搜索树转化为升序数组的话,例如[1,2,3],其对应的累加树序列就是,每个数加其本身以及大于本身的元素,即[6,5,1]。那这样的就是每个数加其本身以及后面的数。思想:本题其实比较简单,首先就是遍历整棵树,遇到节点的值如果不在所要求的区间范围内的话,就进行以下处理;如果节点值大于右边界,就返回当前节点的左节点;反之就返回当前节点的右节点。思想:其实本题特别像之前的一道根据前中序序列构造二叉树,大体上与其十分相似,只是确定root节点的时候,取数组最中间的元素即可。
2024-07-16 14:51:27
417
原创 代码随想录第十一天|二叉树(4)
这几天学习到了一个新的知识点,就是遍历二叉树的方式。这种遍历方式一般用于遍历二叉树的边。这种遍历方式一般用于遍历整个二叉树。如果需要搜索整棵二叉树且不用处理递归返回值,递归函数就不要返回值。如果需要搜索整棵二叉树且需要处理递归返回值,递归函数就需要返回值。如果要搜索其中一条符合条件的路径,那么递归一定需要返回值,因为遇到符合条件的路径了就要及时返回。
2024-07-15 22:03:37
1014
原创 代码随想录第六天|字符串
字符串的操作应该是我本科四年练的最多的,所以做起来比较得心应手,比较简单,包括这几题都是在反转的基础上而来的,思想差不多都一致。
2024-07-09 22:08:48
1002
原创 代码随想录第五天|哈希表(2)
哈希表两天的练习下来,感觉特别灵活也比较固定。灵活是需要的逻辑比较多,固定就是哈希表要做的事情比较固定,一般就是用来查找的。
2024-07-08 21:52:11
882
原创 代码随想录第四天|哈希表(1)
哈希表主要运用来判断是否有重复元素或降低查找效率的。不过,在面试的时候一般不会询问怎么用哈希表,而是提问哈希表的底层运行逻辑问题,例如红黑树等。后续还得深入。
2024-07-06 22:09:43
708
原创 代码随想录第二天|链表(1)
其实今天也做了另一题LeetCode 707. 设计链表。可我一直报错,应该是编译器在执行的时候,在循环的时候链表采取了cur=cur->next;类似操作的时候需要判断cur这个结点是否为空,不然是不会让你编译成功的。换言之,就是while循环的判断语句中需要加上while (cur!= NULL)这一项;其次,新学到了虚拟头结点这个知识,通常在链表的增删改操作中运用会有奇效。查这一操作的话,可以不采用。
2024-07-04 22:17:12
908
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1