<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Happy2030的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Happy2030</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Happy2030]]></copyright><item><title><![CDATA[腾讯面试题之编辑距离]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/151658050</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/151658050</guid><author>Happy2030</author><pubDate>Sat, 13 Sep 2025 21:01:00 +0800</pubDate><description><![CDATA[给定两个单词 word1 和 word2，计算出将 word1 转换成 word2 所使用的最少操作数。]]></description><category></category></item><item><title><![CDATA[双指针法求解经典算法题]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/151318375</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/151318375</guid><author>Happy2030</author><pubDate>Mon, 08 Sep 2025 11:55:44 +0800</pubDate><description><![CDATA[数组中的元素我们其实只用一次，然后就再也不会用到了。所以我们可以不用数组，只用一个元素就行了。那么什么时候从左到右，什么时候从右到左呢？根据下边的代码的更新规则，我们可以知道。动态规划中，我们常常可以对空间复杂度进行进一步的优化。但是会发现我们不能同时把。循环是从左到右遍历的，而。的数组去掉，因为最后的。例如这道题中，可以看到，所以这里要用到两个指针，反之，我们就从右到左更。的更新是从右向左的。，从两个方向去遍历。]]></description><category></category></item><item><title><![CDATA[项目协作技巧]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/151219610</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/151219610</guid><author>Happy2030</author><pubDate>Fri, 05 Sep 2025 11:55:18 +0800</pubDate><description><![CDATA[是团队成员之间通过共享信息、资源和工作流，以实现共同目标的过程。它涉及沟通、任务分配、资源共享和知识传递，需通过有效沟通、明确目标、信任和协作文化来促进团队协作。]]></description><category></category></item><item><title><![CDATA[暴力法求子数组中占绝大多数的元素]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/151143813</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/151143813</guid><author>Happy2030</author><pubDate>Wed, 03 Sep 2025 11:41:59 +0800</pubDate><description><![CDATA[找出可能的绝对众数（不一定存在绝对众数，但存在绝对众数的话找到的一定是绝对众数）和统计这个数出现的次数。找可能的绝对众数方法很简单，暴力寻找即可（类似于打擂台，具体实现可以看代码，正确性证明略去）。统计次数也使用暴力统计。]]></description><category></category></item><item><title><![CDATA[平衡二叉树（二）]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/151066465</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/151066465</guid><author>Happy2030</author><pubDate>Mon, 01 Sep 2025 11:55:24 +0800</pubDate><description><![CDATA[从底至顶，返回以每个节点root为根节点的子树最大高度(左右子树中最大的高度值加1max(left,right) + 1)；当我们发现有一例 左/右子树高度差 ＞ 1 的情况时，代表此树不是平衡树，返回-1；当发现不是平衡树时，后面的高度计算都没有意义了，因此一路返回-1，避免后续多余计算。最差情况是对树做一遍完整 DFS，时间复杂度为 O(N)。终止条件：当DFS越过叶子节点时，返回高度0；]]></description><category></category></item><item><title><![CDATA[平衡二叉树（一）]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/151050143</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/151050143</guid><author>Happy2030</author><pubDate>Sun, 31 Aug 2025 19:40:23 +0800</pubDate><description><![CDATA[一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。给定一个二叉树，判断它是否是高度平衡的二叉树。]]></description><category></category></item><item><title><![CDATA[经典算法题之加一]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/150930269</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/150930269</guid><author>Happy2030</author><pubDate>Wed, 27 Aug 2025 16:29:40 +0800</pubDate><description><![CDATA[给定一个由整数组成的非空数组所表示的非负整数，在该数的基础上加一。最高位数字存放在数组的首位， 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外，这个整数不会以零开头。]]></description><category></category></item><item><title><![CDATA[合并K个排序链表]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/150772830</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/150772830</guid><author>Happy2030</author><pubDate>Mon, 25 Aug 2025 16:23:07 +0800</pubDate><description><![CDATA[一个最简单的想法是通过暴力的方法先遍历整个链表到一个数组中进行排序，然后将已经排序的新数组生成一个新的链表。]]></description><category></category></item><item><title><![CDATA[递归法求二叉搜索树的最近公共祖先]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/150606919</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/150606919</guid><author>Happy2030</author><pubDate>Fri, 22 Aug 2025 11:47:48 +0800</pubDate><description><![CDATA[笔记：p和q其中的一个在 LCA 节点的左子树上，另一个在 LCA 节点的右子树上。节点p，q的最近公共祖先（LCA）是距离这两个节点最近的公共祖先节点。如果条件 2 和条件 3 都不成立，这就意味着我们已经找到节。都在右子树上，那么以右孩子为根节点继续 1 的操作。都在左子树上，那么以左孩子为根节点继续 1 的操作。考虑的是节点的深度。下面这张图能帮助你更好的理解。]]></description><category></category></item><item><title><![CDATA[N皇后问题代码实现]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/150584078</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/150584078</guid><author>Happy2030</author><pubDate>Thu, 21 Aug 2025 15:20:57 +0800</pubDate><description><![CDATA[N皇后问题源自国际象棋规则，皇后作为攻击范围最广的棋子（可沿行、列、斜线移动），问题要求在一个N×N的棋盘上放置N个皇后，使其彼此无法攻击。该问题最早由国际象棋棋手马克斯·贝瑟尔于1848年提出八皇后问题（N=8的特例），后推广至任意N值，成为算法设计中的基础案例。‌是一个经典的计算机科学组合优化问题，要求在N×N的棋盘上放置N个皇后，使得任意两个皇后不互相攻击（即彼此不同行、不同列且不在同一斜线上）。]]></description><category></category></item><item><title><![CDATA[中心扩展法求最长回文子串]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/150521816</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/150521816</guid><author>Happy2030</author><pubDate>Tue, 19 Aug 2025 12:14:18 +0800</pubDate><description><![CDATA[回文中心的两侧互为镜像。因此，回文可以从他的中心展开，并且只有 2n-1 个这样的中心(一个元素为中心的情况有 n 个，两个元素为中心的情况有 n-1 个)。偶数长度的回文串以该字符右侧的空字符串为中心。奇数长度的回文串以该字符为中心；]]></description><category></category></item><item><title><![CDATA[凸函数与损失函数]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/150469609</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/150469609</guid><author>Happy2030</author><pubDate>Sun, 17 Aug 2025 16:53:11 +0800</pubDate><description><![CDATA[这是 Deeplearning.ai 课程中出现的碗，其中 J(w, b) 是逻辑回归（Logistic Regression）的损失函数，这里假设只有两个参数 w 和 b，纵轴是 J(w, b) 的值。凸函数是数学中的一个重要概念，它描述了一种特殊的函数曲线形状。凸函数指的是在其定义域内，任意两点的连线上的值都不小于函数在这两点上的值的函数。如下图，如果损失函数「就像这个碗，它又大又圆」，那么我们很容易就能发现，这个损失函数的最低点有且只有一个，就是碗底。粗略的说，这种长得像碗的函数就是。]]></description><category></category></item><item><title><![CDATA[浅谈三数之和的再优化问题]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/150445473</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/150445473</guid><author>Happy2030</author><pubDate>Sat, 16 Aug 2025 13:25:43 +0800</pubDate><description><![CDATA[然后我们选择一个人做 C 位，既然是 C 位，那么就需要左右各有一个人。先选择队伍最左边（最小值）和队伍最右边（最大值）两个人，加上你，算一下总和。如果大于 0，说明实力太强了，就把就把右侧的人选调左一位，反之，则调整左边的人选，增强一下实力。当某边选到紧挨着你的人的时候，就意味着组队结束，以你为 C 位的所有可能都已经尝试完毕了。首先安排所有人按照顺序排队站好，这是一个需要花时间的操作，不过磨刀不误砍柴工，付出这个时间还是值得的。现在已经想到了可用的通用方案，根据题目的特点，看看还有哪里可以做一些优化。]]></description><category></category></item><item><title><![CDATA[局部变量与全局变量的关系及应用]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/150430115</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/150430115</guid><author>Happy2030</author><pubDate>Fri, 15 Aug 2025 20:13:15 +0800</pubDate><description><![CDATA[现在 myvar2.sh 成功继承了环境便令 MYVAR，但是在 myvar2.sh 内改变 MYVAR 并不会影响全局的 MYVAR。如果想让脚本和终端在同一环境下执行程序（此时在脚本内改变变量内容就会影响到整个环境），我们可以。环境变量所有的程序，包括shell启动的程序，都能访问环境变量，有些程序需要环境变量来保证其正常运行。在脚本或命令中定义，仅在当前shell实例中有效，其他shell启动的程序不能访问局部变量；这个脚本，具体的做法是在执行脚本的指令前面加一个。以上就是本文的三个板块。]]></description><category></category></item><item><title><![CDATA[人工智能时代，有多少智能就有多少人工]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/150071481</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/150071481</guid><author>Happy2030</author><pubDate>Fri, 08 Aug 2025 17:34:09 +0800</pubDate><description><![CDATA[在某个纪实采访中，管理标注员的负责人用特斯拉（Tesla）的自动驾驶事故鼓励员工，2016 年，一辆自动驾驶模式下的特斯拉发生车祸事故。最需要 AI 去做的事情， AI 反而无能无力，而我们为了能让 AI 取代劳动密集型的工作，得先为 AI 服务，付出密集、辛勤的劳动，这让数据标注工作看上去有点反乌托邦的“魔幻”感觉。在一些专业数据标注公司，机器占30%，而人工标注占比达到70%左右。这就像一个悖论，AI能否进化的更为智能某种程度上取决于这些标注工作的人，而这个工作却是最不智能、最没有技术含量的。]]></description><category></category></item><item><title><![CDATA[实际开发中的面向对象编程（OOP）]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/148947479</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/148947479</guid><author>Happy2030</author><pubDate>Fri, 27 Jun 2025 10:24:06 +0800</pubDate><description><![CDATA[如大家所知，C++是一种强大且灵活的编程语言，支持多种编程范式，使得开发者能够选择最适合特定问题的解决方案。在实际开发中，面向对象编程、泛型编程、函数式编程和元编程是最常用的几种范式。不可否认，面向对象编程 是C++ 的核心编程范式，通过类和对象的概念，将数据和操作数据的方法封装在一起，使代码具有更好的组织性和可维护性。通过类封装数据和操作，隐藏内部实现细节，只对外暴露接口。今天的文章分享就到这里了，希望对大家的学习和工作有所帮助~方法，展示了多态的威力。今天我们只讲：面向对象编程。]]></description><category></category></item><item><title><![CDATA[AI辅助编程之代码生成]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/148922539</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/148922539</guid><author>Happy2030</author><pubDate>Thu, 26 Jun 2025 11:58:55 +0800</pubDate><description><![CDATA[虽然我对脚本语言一窍不通，但只要说清楚需求，AI 就能帮忙写出一份可执行的脚本。就实际使用情况来看，AI 目前很难做到 100% 实现需求，但能够搭出一个能够运行的基本框架，在这个基础上，再对程序进行一些必要的修改就能帮助我们完成任务了。可以看出，AI 在写脚本方面还是比较在行的。不过也会遇到 AI 写出 bug 的场景，此时我们可以让它接着修改，也可以根据代码逻辑手动调整。举个例子，笔者在工作中有时会收到大批量的压缩文件，一个个解压这些文件有些耗时，我希望能够有个一键解压所有文件的脚本。]]></description><category></category></item><item><title><![CDATA[Pareto前沿优化的具体操作]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/148895593</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/148895593</guid><author>Happy2030</author><pubDate>Wed, 25 Jun 2025 11:36:34 +0800</pubDate><description><![CDATA[举个例子，在骑手短缺的区域，系统可以自动降低送达时间的权重，增加空间因子的比重，以确保更多订单能被及时接单。如果遇到恶劣天气，系统可以优先分配订单给经验更丰富的骑手，并增加补偿，以减少骑手的风险和顾虑。：系统会计算当前所有可派发的订单，并筛选出一批“最优”订单，即在所有目标（时间、距离、收益）之间取得平衡的订单。：在不同的城市、天气条件和订单需求下，系统可以自动调整派单策略，而不是使用固定的计算方式。：结合图神经网络分析道路状况、天气、订单密度等因素，并据此优化派单逻辑。]]></description><category></category></item><item><title><![CDATA[运用JUC包来解决并发问题]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/148876754</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/148876754</guid><author>Happy2030</author><pubDate>Tue, 24 Jun 2025 18:16:38 +0800</pubDate><description><![CDATA[最后，还有 StampedLock，它除了支持悲观读写 read-Lock/writeLock，还支持乐观读 tryOptimisticRead，也就是不加锁，直接读取数据，但需要在读取之后对比一下读取前后的版本号，也就是 stamp，判断是否在读取的过程中发生了写入。与之配套的Condition对象，用于替代 wait tify 机制，并且通过 Condition 的 await 函数还可以设置等待被唤醒的超时时间，如果超时没有被人唤醒，就自己醒过来。如大家所知，除了synchronized关键字，]]></description><category></category></item><item><title><![CDATA[html网页设计入门需要背完所有CSS属性吗？]]></title><link>https://blog.youkuaiyun.com/Happy2030/article/details/148867520</link><guid>https://blog.youkuaiyun.com/Happy2030/article/details/148867520</guid><author>Happy2030</author><pubDate>Tue, 24 Jun 2025 11:20:50 +0800</pubDate><description><![CDATA[只要掌握常用的几十个属性，就能应对 90% 的网页设计场景！今天的文章分享就到这里了，希望对大家的学习和工作有所帮助~三、遇到新需求，现学现查 MDN 或各种官方文档就能解决；一、理解基本布局逻辑（float 、flex）；会炒蛋的人，可以做出蛋炒饭、蛋包饭、番茄炒蛋。会用 flex 的人，可以做出各种网页布局！二、知道什么时候该用什么属性；]]></description><category></category></item></channel></rss>