- 博客(293)
- 收藏
- 关注
原创 二维数组搜索:从暴力地毯到二分神技的奇幻之旅
你:😎 “循环遍历?小菜一碟!你:🤯 “稍等…我需要召唤位面之力!这篇带你通关二维迷宫,从“「人肉扫描仪」进化成「二分法魔神」,全程,包你笑着拿下 offer!👇。
2025-08-06 23:17:03
574
原创 《计算机“十万个为什么”》之 面向对象 vs 面向过程:编程世界的积木与流水线
场景推荐范式说明硬件驱动面向过程(C)性能高、逻辑简单游戏开发面向对象(C++)复用性强、扩展性好数据分析Python(混合)灵活、库丰富嵌入式系统面向过程(C)效率高、直接操作硬件没有绝对的“最好”,只有“最适合”的选择。选择编程范式,应根据项目需求、团队习惯、性能要求和开发目标综合考虑。在编程的世界中,没有一种“万能”的解决方案,也没有一种“最好”的编程范式。正如我们之前探讨的,面向过程和面向对象各有其适用的场景和优势。选择哪种范式,取决于具体的问题、项目需求和团队习惯。
2025-08-05 23:09:22
1338
原创 只出现一次的数字:从暴力美学到位运算神技的进化之路
这篇文章生动讲解了如何高效解决"找出数组中只出现一次的数字"问题。文章从暴力双重循环法(O(n²))入手,逐步优化到哈希表法(O(n)空间)、集合法(O(n)空间),再到数学求和法,最后揭示最优解——位运算异或法(O(1)空间)。异或法利用"a^a=0"和"a^0=a"的特性,能高效地使成对数字相互抵消,仅保留落单数字。文章还对比了各方法的优缺点,并提供了进阶问题的思考方向,如处理数字出现3次的情况。整篇文章以幽默风趣的方式,配合代码示例和表格对比
2025-08-04 23:52:46
1042
原创 Java 随机数生成:从青铜到王者的骚操作指南
听说同事还在用抛硬币生成随机数?🤯 今天咱就把 Java 随机数整得明明白白,保证你写完代码同事直呼"666"!
2025-08-04 10:53:48
390
原创 《计算机“十万个为什么”》之 [特殊字符] 字符集:数字世界的文字密码本 [特殊字符]️
《字符集:数字世界的文字密码本》摘要 本文生动介绍了计算机字符集的发展历程与技术原理。从ASCII时代的英语专属编码,到各国本土化字符集的分裂局面,再到Unicode统一世界的"数字巴别塔",文章以幽默比喻揭示了字符集如何充当人类文字与二进制的翻译官。通过编码流程示意图和乱码案例分析,解释了字符从码位到字节的转换机制,以及不同编码标准冲突导致的"鸡同鸭讲"现象。文中还包含实用编码对照表和解决方案,帮助读者理解这个让全球文字和谐共处的"数字外交官"背
2025-07-31 19:51:07
651
原创 Git 使用教程:从下载到使用
Git是一个分布式版本控制系统,由Linus Torvalds开发,与SVN相比具有离线工作、高效分支管理等优势。本文详细介绍了Git的下载和安装过程:首先访问Git官网下载适合操作系统的版本(Windows用户可选择独立安装程序或便携版),运行安装包后按步骤配置安装选项,包括安装路径、组件选择(如Git Bash、Git LFS等)、默认编辑器设置、环境变量配置等。最后提供了SSH连接的选项设置,帮助用户快速完成Git环境的搭建。
2025-07-31 09:43:11
674
原创 算法精讲:二分查找(二)—— 变形技巧
问题类型二分对象判断条件典型案例找具体值数组索引经典二分查找 ✅找最值解答案值本身是否满足极值条件珂珂吃香蕉分段函数求极值函数参数函数增减性变化点寻找峰值(LeetCode 162)📈隐式数学解数学解空间解的存在性平方根(LeetCode 69)➗。
2025-07-30 21:25:55
1038
原创 算法精讲:二分查找(一)—— 基础原理与实现
在实现二分查找时,如何定义left和right的边界至关重要。左闭右闭(即)和左闭右开(即这两种方式会影响循环的终止条件和指针的移动逻辑。例如,在左闭右闭区间中,循环条件为,而在左闭右开区间中,循环条件为。因此,在编写代码时,必须明确选择一种区间定义方式,并在整个过程中保持一致。建议:建议初学者统一使用“左闭右闭”区间,因为这种方式更直观,也更容易理解。一旦掌握了这种模式,再尝试“左闭右开”区间,会更容易适应不同语言或框架下的实现方式。法则描述常见错误单调性数组必须有序 📈忘记排序直接查找。
2025-07-29 21:31:15
730
原创 《计算机“十万个为什么”》之 [特殊字符] 序列化与反序列化:数据打包的奇妙之旅 ✈️
序列化是将一个对象转换为可以存储或传输的格式(如字节流、字符串等)的过程。这个过程类似于将一个文件保存到硬盘上,以便以后可以再次读取。这个过程就像你把一封写给朋友的信件整理成一个“快递包裹”,这样它才能被安全地寄出,不会在途中丢失或损坏。反序列化是序列化的逆过程,即将之前序列化的数据(如字节数组、字符串等)还原为原来的对象。这个过程类似于从文件中读取数据并将其恢复为可用的对象。这个过程就像你收到一封快递包裹,打开它,取出里面的信件,读信一样。
2025-07-28 21:38:10
563
原创 《计算机“十万个为什么”》之 [特殊字符] 深浅拷贝 & 引用拷贝:内存世界的复制魔法 ✨
引用拷贝只是复制了对象的引用地址,而不是实际数据。这意味着新变量和原变量指向堆内存中的同一个对象。浅拷贝会创建一个新对象,并复制原对象的所有基本数据类型属性。但对于引用类型属性,它只复制引用地址,而不是实际数据。深拷贝会创建一个全新的对象,并递归复制原对象的所有属性,包括引用类型属性。这意味着新对象与原对象完全独立,互不影响。深浅拷贝和引用拷贝是 JavaScript(以及其他面向对象语言)中非常基础但又极其重要的概念。理解它们的工作原理,能够帮助我们编写更健壮、更可预测的代码。引用拷贝。
2025-07-23 21:44:12
830
原创 《计算机“十万个为什么”》之 MQ
想象一下,当你想给朋友寄一封信,你不需要亲自把信送到朋友手中,只需把信投入邮筒 📮,邮局会负责把信送达。消息队列(MQ, Message Queue)就扮演着类似邮局的角色!MQ 是一种进程间通信或同一进程的不同线程间的通信方式,它允许应用程序之间通过消息进行异步通信。发送方无需等待接收方立即处理,就像你寄信后不需要一直等着朋友读完信再做其他事情一样!简单来说,MQ 就是一个存放消息的容器,它可以帮助应用程序之间解耦异步通信和流量削峰。恭喜你完成了 MQ 的学习之旅!
2025-07-22 22:31:42
835
原创 计算机“十万个为什么”之跨域
同源策略(Same-Origin Policy)是浏览器实施的核心安全策略,它要求网页只能请求与其自身协议、域名、端口完全相同的资源。这就像现实生活中,你家的钥匙只能打开你家的门,不能打开邻居家的门一样,是一种最基本的安全边界。预检请求(Preflight Request)是浏览器在发送某些跨域请求前,先发送一个OPTIONS方法请求到服务器,以确定服务器 是否允许实际请求。CORS 预检请求机制是为了确保跨域请求的安全性而引入的。
2025-07-18 22:49:44
708
原创 力扣每日一题--2025.7.17
这种方法的核心思想是通过观察子序列的最后两项来动态构建有效子序列。我们发现,如果一个有效子序列的最后两项模 k 的结果分别为 y 和 x,那么在它前面添加一个模 k 结果为 y 的元素,就能形成一个新的有效子序列,其最后两项为 x 和 y。这种方法的核心思想是枚举所有可能的相邻元素之和模 k 的结果 m(从 0 到 k-1),然后对每个 m 分别寻找最长的有效子序列。对于固定的 m,如果子序列的最后一项模 k 为 x,那么倒数第二项模 k 必须为 (m-x) mod k。
2025-07-17 22:36:44
869
原创 《计算机“十万个为什么”》之什么是 feed 流
feed 流看似简单,实则是一个涉及数据存储算法推荐性能优化和用户体验的复杂系统工程。从最初的简单时间线到如今的智能推荐,feed 流技术一直在不断演进。设计一个优秀的 feed 流系统需要在实时性个性化和系统性能之间找到完美平衡,这既是技术挑战,也是产品成功的关键因素之一!希望这篇文章能帮你理解 feed 流背后的技术原理,下次刷社交媒体时,不妨想想你看到的内容是如何通过复杂的系统呈现在你眼前的吧!😉。
2025-07-17 21:35:45
1334
原创 算法精讲--正则表达式(二):分组、引用与高级匹配技术
分组(Grouping)是正则表达式中用于将多个字符或子表达式组合为一个逻辑单元的机制,通过圆括号()实现。逻辑组合:将多个元素视为一个整体进行操作(如应用量词)捕获数据:提取匹配结果中的特定部分模式分支:通过实现多个可选模式引用匹配:在表达式内部或替换操作中引用已匹配的内容没有分组,正则表达式将无法处理复杂的结构化文本匹配。想象一下,如果不能将ab组合为一个整体,我们将无法匹配重复出现的ab序列。基础分组:使用()创建捕获组,提取匹配的子串性能优化:使用:)非捕获组减少内存占用可读性提升。
2025-07-16 22:41:40
1341
原创 力扣每日一题--2025.7.16
本题考察了对子序列概念的理解以及贪心算法的应用。通过分析相邻元素之和的奇偶性规律,我们发现有效子序列有两种基本类型,并分别计算了它们的最大长度。类型 0 子序列要求所有元素具有相同的奇偶性类型 1 子序列要求元素的奇偶性交替出现通过计算这两种类型的最大长度并取较大值,我们得到了问题的解。希望今天的讲解能帮助你更好地理解这个问题和贪心算法的应用!如果你有任何疑问或想法,欢迎在评论区留言讨论。明天见!👋。
2025-07-16 19:37:19
964
原创 算法精讲--正则表达式(一):入门必备语法
元字符是在正则表达式中具有特殊含义的字符,它们用于定义匹配规则。掌握这些元字符是使用正则表达式的第一步。下方是一些常见的元字符和其详解。元字符描述例子匹配结果实际应用场景匹配除换行符外的任意单个字符,相当于通配符h.t模糊搜索,如查找"h 开头 t 结尾的 3 个字母单词"[ ]匹配括号内的任意一个字符,字符集可以指定范围,如[a-z]表示所有小写字母[abc]a, b, 或 c验证性别([男女性])或简单选项匹配[^ ]匹配不在括号内的任意一个字符,^表示取反[^0-9]
2025-07-15 23:35:31
644
原创 《计算机“十万个为什么”》之 Java 语言为什么能跨平台
字节码是一种介于源代码和机器码之间的中间代码,它不针对任何特定硬件和操作系统。每个字节码指令都是 1 个字节(8 位)长,因此得名“字节码”。专注业务逻辑,而非平台差异。它让开发者摆脱了"为每个平台编写不同代码"的噩梦,极大提升了开发效率和软件可移植性。🌟一句话总结 Java 跨平台原理源代码 → 统一字节码 → 平台专用 JVM → 本地机器码从企业服务器到移动设备,从嵌入式系统到云计算平台,Java 的跨平台能力使其在各种场景中大放异彩。
2025-07-14 19:49:12
419
原创 《计算机“十万个为什么“》之心跳机制
《计算机"十万个为什么"》之心跳机制 摘要: 心跳机制是网络通信中维持连接稳定性的关键技术,通过定期发送心跳包来检测连接活性。文章从三个维度展开:首先介绍了心跳机制的必要性,包括检测僵尸连接、释放资源和感知网络状态;其次详细解析了心跳机制的工作原理,对比了TCP层和应用层两种实现方式;最后以IM系统为例,展示了实战中的心跳设计与优化策略。文章通过生活场景类比、技术参数说明和代码示例,生动解释了这一重要的计算机网络概念,帮助读者理解如何在实际项目中应用心跳机制来提升系统稳定性。(149字)
2025-06-29 23:34:33
894
原创 《计算机“十万个为什么”》之前端与后端
前端 = 数字世界的“化妆师”+“动作指导”🔥技术没有银弹,场景决定架构!这个银弹理论(Silver Bullet Theory)在软件工程中指的是没有单一的解决方案能够解决所有软件开发中的问题。本质的困难(Essential Difficulties)和偶然的困难本质的困难是软件本身的特性所导致的,而偶然的困难则是可以通过改进工具和方法来解决的。因此,银弹理论提醒我们在软件开发中要有合理的期望,不能寄希望于某种“银弹”来解决所有问题。
2025-06-01 17:46:54
743
原创 数据结构与算法入门 Day 0:程序世界的基石与密码
ps:接受到了不少的私信反馈,说应该先把前置的知识内容做一个梳理,所以把昨天的文章删除了,重新开启今天的博文写作Hey 小伙伴们!今天我们要一起推开数据结构与算法的大门啦!刚接触编程的小白🐣想系统巩固基础的同学📚面试前需要快速复习的勇者💪。
2025-04-16 22:15:56
1659
原创 数据结构入门:线性表(Day 1)——从原理到代码实战
day 1的内容只是一个大概,初学者看不太懂的话也没关系,具体详细的每一部分精讲都会在后续的内容当中体现。要求时间复杂度O(n),空间复杂度O(1)。🔧 从「固定数组」到「翻倍策略」,揭秘顺序表如何用「空间换时间」统治数据结构江湖!合并为一个非递减有序单链表,要求用原链表节点,不得开辟新内存。之间的所有元素,要求时间O(n),空间O(1)。:双指针法+扩容逆用,评论区留下你的答案雏形!(答案:均摊时间复杂度优化,避免频繁扩容)输入:1→2→3→4→5→NULL。输出:2→4→1→3→5→NULL。
2025-04-15 08:34:56
1245
原创 算法精讲——前缀和:小白也能秒懂的时空魔法
天数12345金额25134如果要算第3天到第5天存了多少钱,传统做法是:1+3+4=8元💰预先计算累计金额,这样就能快速查询任意区间的和!// 前缀和数组计算(索引从1开始更直观)i++){// 得到 [0,2,7,8,11,15]场景暴力法时间复杂度前缀和优化后一维区间查询O(1)二维矩阵查询O(mn)O(1)统计子数组O(n²)O(n)
2025-03-14 21:45:12
541
原创 算法精讲 | 树(番外):平衡世界的四大守护者:AVL vs 红黑树 vs B树 vs B+树
① 文件系统需要快速定位单个文件 ② B树非叶节点存数据有利小文件 ③ B+树更适合范围扫描。是强迫症的AVL,潮流的红黑树,还是磁盘大师B+树?比如4KB页,假设key占16B,t≈4KB/(16B+8B)=170。:① 查询更稳定(都要到叶子层) ② 范围查询吊打B树 ③ 非叶节点更"苗条":为什么Linux文件系统用B树而不用B+树?:红黑树为什么比AVL树应用更广?:HashMap为什么不用红黑树?:为什么数据库用B+树不用B树?:B+树叶子链表如何维护?:B树的t值怎么选?
2025-03-12 16:42:54
645
原创 算法精讲 | 树(三):删除操作の外科手术——像园艺大师一样修剪二叉树
既要精准切除病灶,又要完美缝合伤口!:方案一:仅删除第一个遇到的节点;方案二:设计支持重复值的BST结构。:你曾在删除操作中踩过哪些坑?在评论区分享你的惊险故事吧!:高度、平衡因子、父指针、子树大小(若维护):中序遍历结果保持严格递增序即为合法BST。:如何证明删除后的树仍然是BST?:C++选手忘记释放节点内存。:删除操作会影响哪些树属性?:在右子树找最小值时漏判空。:如何处理重复元素的删除?:删除后忘记检查平衡因子。:多线程环境下非原子操作。:未及时更新父节点引用。:处理超大树时未优化。
2025-03-11 22:04:31
735
原创 算法精讲 | 树(二):BFS层序遍历の魔法——像水波纹一样扫描整棵树
小明用DFS解二叉树的右视图总超时,直到他发现BFS层序遍历就像超市结账时排队——:找最短路径时(如迷宫问题),BFS像警犬搜救,DFS像游客瞎逛!:最差情况是完美二叉树,最后一层有⌈n/2⌉个节点,所以是。:队列空且所有节点处理完毕,就像快递站所有包裹都派送完!:每个节点进出队列各一次,时间复杂度是妥妥的。:遍历子节点时从固定左右子节点变成遍历。:层序遍历序列化,空节点用特殊符号标记。:BFS层序遍历的时间复杂度怎么计算?:多源BFS,所有0同时作为起点扩散。集合,像贴封条一样标记已访问节点!
2025-03-10 18:43:11
1605
原创 算法精讲——树(一):DFS 的奇妙探险之旅
策略不撞南墙不回头,优先探索最深的节点实现方式:递归 / 栈(Stack)时间复杂度:O(n)(每个节点访问一次)
2025-03-04 15:42:17
970
原创 Java 集合框架大师课:集合流式编程革命(三)
/ 实现字符串拼接收集器StringBuilder::new, // 容器工厂(sb, s) -> sb.append(s).append("🐶"), // 累加器(sb1, sb2) -> sb1.append(sb2), // 合并器StringBuilder::toString // 最终转换String result = Stream.of("柴犬", "柯基", "哈士奇")// 🐾 输出:柴犬🐶柯基🐶哈士奇🐶。
2025-02-24 21:15:44
1205
原创 算法精讲--贪心算法(一):小白也能看懂的解题秘籍
▎算法江湖生存法则✨四两拨千斤:用简单策略解决复杂问题⚡效率之王:时间复杂度往往最优🧩思维体操:培养最优决策直觉特征贪心算法暴力枚举动态规划时间复杂度O(n log n)O(2^n)O(n²)空间复杂度O(1)O(n)O(n)是否需要历史信息不需要需要需要典型应用最小生成树密码破解背包问题。
2025-02-24 21:10:08
1237
原创 一文搞懂 Cookie、Session、Token、JWT 的恩怨情仇
开发路上总有几个绕不开的「小问题」,今天我们就来盘一盘 Web 开发中的四大认证机制!
2025-02-23 21:47:57
887
原创 算法精讲--动态规划(三):树形DP与状态机模型
状态定义 :转移方程 :🚀 Step3:执行验证测试案例 :🎯 Step4:总结优化(后序遍历)优化解析 :测试案例:🎯 Step4:总结优化(逻辑融合)优化解析:测试案例:🎯 Step4:总结优化(逻辑精简)优化解析:🎯 Step4:总结优化(状态压缩)优化解析:状态定义 :🎯 Step4:总结优化(滚动变量)优化解析 :优化原则:拓展问题:2246. 相邻字符不同的最长路径提示:《动态规划(四):背包九讲》预习指南:复杂度预对比:📢 互动环节:你在树
2025-02-22 14:22:07
1288
原创 Java集合框架大师课:从青铜到王者的数据结构指南(一)
Java集合框架(Java Collections Framework)——开发者的数据管理瑞士军刀!🛠️ 取代Vector/Hashtable等老古董📦 统一数据容器操作规范⚡ 提供高性能数据结构实现使用场景首选方案避坑指南高频查询频繁增删快速去重✅ HashSet❌ TreeSet需要排序✅ TreeSet❌ HashSet线程安全需求❌ HashMap。
2025-02-21 18:30:55
720
flaskproject1.zip
2024-11-11
基于node.js的在线聊天室
2024-11-11
一个基于Bootstrap框架的个人秀项目
2024-11-11
拼多多管理系统案例分析课程设计报告:供应链管理、人文关怀与技术创新
2024-11-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人