- 博客(101)
- 收藏
- 关注
原创 笔试题10 -- 数组变换(通过乘2将所有数变相等)
利用贪心算法解决“数组变换”,通过剖析因数和两数符合2的幂次关系那么两数相除得到的数一定是偶数且为2的幂次。
2024-11-08 16:23:04
334
原创 c++去new一个对象需要切换到内核态吗?
new进行内存分配多数情况是在用户态完成的,尤其是当内存分配器能够从现有的内存池中获取到足够的内存时。然而,当堆内存耗尽或需要更大的内存块时,分配器需要向操作系统请求更多内存,这时会发生内核态的切换。
2024-11-07 10:32:13
787
原创 单纯的查询而言,vector和map谁更快
通过分析两容器的实现原理,得出vector和map在随机查询、查询、键值查询场景下的不同查询时间复杂度。
2024-11-07 10:27:46
538
原创 网络编程IO多路复用之poll模式
详细介绍了 poll 函数的原型、参数说明、系统调用过程、编程模型图、事件定义及使用示例,并总结了 poll 相较于 select 的优缺点。同时提出了一些延伸问题供读者思考。
2024-11-06 11:07:06
1045
原创 网络编程select模式是同步的还是异步的
本文验证了网络编程中的select模式是同步的,用于检测I/O是否就绪。同时剖析了select的用法。它不一定阻塞,而是取决于超时参数。异步和进程挂起无直接关系。
2024-11-06 11:02:27
824
原创 面试题总结(四) -- STL与算法篇
这篇文章将详细介绍 C++ STL 与算法的核心内容,包括常用容器及其特点、STL 算法的使用方法、迭代器的概念和作用、map 和 unordered_map 的区别、容器适配器的使用、自定义比较函数、算法复杂度分析、STL 进行数据批量处理的方法、函数对象在 STL 中的应用以及解决迭代器失效问题的策略。
2024-09-15 22:09:39
1472
原创 面试题总结(三) -- 内存管理篇
这篇博客文章将深入探讨 C++ 内存管理的各个方面,包括堆和栈内存的区别、手动内存管理、内存泄漏及其预防、智能指针的作用、内存对齐的意义、内存访问越界的检测与解决、对象构造和析构顺序的重要性、RAII 机制、内存优化方法以及动态内存分配失败的处理策略。
2024-09-15 22:07:08
1260
原创 面试题总结(二) -- 面向对象篇(封装、继承、多态)
该文章涵盖了C++面向对象编程的核心概念,包括封装、继承、多态的实现方式,构造函数和析构函数的作用,类成员的访问权限,动态绑定,对象生命周期,虚函数表的作用,避免成员函数重定义的方法,以及友元函数和友元类的使用场景。
2024-09-05 14:41:21
1236
原创 面试题总结(一) -- 基础语法篇
总结了 C++ 基础语法中的关键概念和常见面试题,包括变量定义与声明、static 和 const 关键字、类型转换、引用与指针、作用域、异常处理、函数重载及模板的作用。
2024-09-02 16:44:16
1420
原创 MySQL语法常用优化
提供了多种通过优化mysql语句提高效率的方法,编写过程中通过这些注意点可以显著提高MySQL亦或是其他数据库的CURD效率。
2024-08-27 00:38:52
268
原创 文件读写与缓存机制
介绍了文件通过C语言接口或POSIX系统接口写入磁盘的全过程,同时介绍了缓冲机制及其工作原理,最后讲解了面试题“写文件时进程宕机,数据是否会丢失?”
2024-08-27 00:28:00
1025
原创 笔试题8 -- 利用拓扑排序解决体育课测验
给出了经典的拓扑排序Kahn算法解答:每两个项目被划分为一组得到分组数组 groups[i],现规定若想完成项目 groups[i] [0],必须先完成 groups[i] [1]。
2024-08-23 12:47:36
491
原创 理解Linux中的作业控制:详解fg、bg和jobs命令
详细介绍了 fg、bg 和 jobs 命令可以有效管理和控制作业,提升多任务处理效率,了解相关知识点。
2024-08-18 16:39:35
1019
原创 笔试题7 -- 对称之美
利用双指针和哈希思想,实现了字符串数组间各取一个字符是否能合成回文字符串的判断逻辑,文章思路分析清晰易懂,采用C/C++语言给出了参考代码。
2024-08-18 16:25:36
389
原创 拓扑排序与有向无环图 -- Kahn算法和深度优先搜索
本文介绍了拓扑排序(Topological Sorting)的定义、作用和算法,并提供了Kahn算法和深度优先搜索(DFS)两种实现拓扑排序的方法。拓扑排序是一种对有向无环图(DAG)的所有顶点进行线性排序的方法,常用于表示具有依赖关系的任务或事件。
2024-07-25 20:38:17
989
原创 关于多人开发下git pull报错代码冲突问题的解决方案
以亲身经历详细图示逐步讲解git冲突报错的解决方案,包括git pull报错和git commit报错都可一文打尽解决,手把手教你解决冲突。
2024-07-06 17:19:51
655
原创 MySQL表的增删改查(CRUD)
SQL查询中各个关键字的执行先后顺序 `from > on > join > where > group by > with > having > select > distinct > order by > limit`
2024-07-06 17:12:04
1053
原创 动态规划-简单多状态dp问题 -- 买卖股票的最佳时机含手续费
通过对dp[i]状态按照“已购买”和“可卖出”两种情况表示进行划分,将手续费归为售出过程承担,优雅的解决了该多状态dp问题
2024-06-25 23:50:12
1062
原创 MySQL表的约束
给出mysql中对表字段各类约束,包括空属性、默认值、列描述、zerofill、主键、唯一键、外键、自增长各方面的语法以及案例代码
2024-06-25 23:44:17
1012
原创 动态规划-简单多状态dp问题 -- 粉刷房子
利用二维数组封装对应三种状态的三排dp表,利用相邻房屋颜色不一致的条件,给出状态转移方程和代码等解题思路讲解
2024-06-19 17:40:18
778
原创 动态规划-简单多状态dp问题 -- 删除并获得点数
利用哈希思想巧妙解决了题目的 nums[i] 与点数为nums[i] - 1和nums[i] + 1不能同时选择的要求,通过哈希表充当 "打家劫舍" 问题的arr数组,解决删除并获得点数问题
2024-06-19 17:36:48
528
原创 动态规划-简单多状态dp问题 -- 买卖股票的最佳时机含冷冻期
通过对买入、卖出、冷冻期三种状态之间转换关系的描述,利用3排线性dp表,给出详细解决方案
2024-06-17 23:06:00
998
原创 动态规划-简单多状态dp问题 -- 打家劫舍(二)
给出打家劫舍(二)问题的详细解题思路,转环形问题为两个单排问题,通过偷与不偷将dp[i]状态表示分为f[i]、g[i]两种情况,决定dp[i] = max (f[i], g[i]),并给出示例代码
2024-06-14 22:41:09
1135
原创 C/C++中互斥量(锁)的实现原理探究
本文通过互斥量、原子操作概念以及硬件上下文结合的方式,阐释了互斥量通过原子操作保证线程独占访问共享资源,避免数据竞争。线程获取互斥量时,若已被占用则等待,确保临界区安全。
2024-05-31 14:25:50
1166
2
原创 ubuntu中彻底删除mysql (配置文件删除可选)
给出ubuntu系统通用的删除mysql相关服务和配置的系统化方案,一站式解决卸载不干净,新版本安装不上的问题
2024-05-31 14:10:43
1477
原创 浅析declval关键字
本文详细讲解 declval 特性和使用场景,它允许我们在不实例化对象的情况下使用其类型。这在模板元编程中尤其重要,因为它使得我们能够在编译时进行类型推导,而无需关心对象的构造。
2024-05-23 21:13:16
904
原创 模板中的右值引用(万能引用)、引用折叠与完美转发
本文通过详细的案例,循序渐进的讲解万能引用、引用折叠、完美转发。这三个概念之间的联系紧密以及使用场景高度重合,正是因为C++11中提出如此富有意义的新概念,极大地方便了我们重构代码,理想高效地编码实现功能。
2024-05-23 21:07:25
1252
原创 位图bitset的模拟实现与位运算
本文探讨C++中的位操作与位图bitset,通过介绍bitset和two_bitset类模板,将展示如何利用C++的位操作来解决实际问题,位图为处理大量数据提供了一种高效且直观的方法,无论是在内存受限的环境中处理大规模数据集,还是在日常编程中寻找优化的机会,都是一个不可或缺的工具。
2024-05-17 02:31:14
1083
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人