<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Buling_0的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Buling_0</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Buling_0]]></copyright><item><title><![CDATA[游戏中的设计模式——第三篇 简单工厂模式]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/151282893</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/151282893</guid><author>Buling_0</author><pubDate>Sun, 07 Sep 2025 11:13:22 +0800</pubDate><description><![CDATA[简单工厂模式的核心是定义一个创建对象的接口，将对象的创建和本身的业务逻辑分离，降低系统的耦合度，使得两个修改起来相对容易些，当以后实现改变时，只需要修改工厂类即可。]]></description><category></category></item><item><title><![CDATA[游戏中的设计模式——第二篇 单例模式]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/151281931</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/151281931</guid><author>Buling_0</author><pubDate>Sun, 07 Sep 2025 10:45:51 +0800</pubDate><description><![CDATA[在一个项目中，全局范围内，某个类的实例有且仅有一个，通过这个唯一实例向其他模块提供数据的全局访问，这种模式就叫单例模式。单例模式在项目中主要是用于数据类Data和模块Module用的最多，Data用于存放该活动类型下所有的活动数据；Module用于处理表现层和数据层之间的交互和回调；]]></description><category></category></item><item><title><![CDATA[游戏中的设计模式——第一篇 设计模式简介]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/151155097</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/151155097</guid><author>Buling_0</author><pubDate>Fri, 05 Sep 2025 23:32:49 +0800</pubDate><description><![CDATA[设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结，使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。一个类只负责一个功能领域中的相应职责。]]></description><category></category></item><item><title><![CDATA[算法-贪心篇13-无重叠区间]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146137479</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146137479</guid><author>Buling_0</author><pubDate>Sun, 09 Mar 2025 19:53:29 +0800</pubDate><description><![CDATA[给定一个区间的集合 intervals ，其中 intervals[i] = [starti, endi]。返回 需要移除区间的最小数量，使剩余区间互不重叠。注意 只在一点上接触的区间是 不重叠的。例如 [1, 2] 和 [2, 3] 是不重叠的。每当我们发现边界有重叠的时候，记录下上一个的左边界，然后假设删除这个区间，继续向前遍历；如果区间不再重叠，把这个区间保留，然后更新为新的左边界。从右边界进行排序，然后定左边界。]]></description><category></category></item><item><title><![CDATA[算法-贪心篇12-用最少数量的箭引爆气球]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146136906</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146136906</guid><author>Buling_0</author><pubDate>Sun, 09 Mar 2025 19:15:54 +0800</pubDate><description><![CDATA[在坐标 x 处射出一支箭，若有一个气球的直径的开始和结束坐标为 xstart，xend， 且满足  xstart ≤ x ≤ xend，则该气球会被 引爆。墙面上的气球记录在整数数组 points ，其中points[i] = [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。然后如果气球和下一个气球有重叠部分，把下一个气球的边界更新为两个气球的重叠区间，这样就省下了一根箭；给你一个数组 points ，返回引爆所有气球所必须射出的 最小弓箭数。]]></description><category></category></item><item><title><![CDATA[算法-贪心篇11-根据身高重建队列]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146136651</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146136651</guid><author>Buling_0</author><pubDate>Sun, 09 Mar 2025 18:56:46 +0800</pubDate><description><![CDATA[假设有打乱顺序的一群人站成一个队列，数组 people 表示队列中一些人的属性（不一定按顺序）。返回的队列应该格式化为数组 queue ，其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性（queue[0] 是排在队列前面的人）。然后我们遍历这个从高到低的序列，每次每个人他前面有 k 个比他高的人，然后放到第 k 个位置，因为后面再插入到他前面也不会影响到他的这个数据了。首先我们根据身高进行排序，高的在前面，如果一样高，前面比自己高的人少的在前面。]]></description><category></category></item><item><title><![CDATA[算法-贪心篇10-柠檬水找零]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146136620</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146136620</guid><author>Buling_0</author><pubDate>Sun, 09 Mar 2025 18:52:20 +0800</pubDate><description><![CDATA[很简单，因为钱只有三种面值，我们只需要一个长度为三的数组来存储自己所拥有的零钱的数量就行。（其实两个就够了，因为找零只会使用到5和10，但是工程思想，都保存下来没毛病）如果你能给每位顾客正确找零，返回 true ，否则返回 false。每位顾客只买一杯柠檬水，然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零，也就是说净交易是每位顾客向你支付 5 美元。在柠檬水摊上，每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品，（按账单 bills 支付的顺序）一次购买一杯。]]></description><category></category></item><item><title><![CDATA[算法-贪心篇09-分发糖果]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146123936</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146123936</guid><author>Buling_0</author><pubDate>Sat, 08 Mar 2025 23:33:25 +0800</pubDate><description><![CDATA[果然，贪心是没有规律的，就大胆去想。]]></description><category></category></item><item><title><![CDATA[算法-贪心篇08-加油站]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146122202</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146122202</guid><author>Buling_0</author><pubDate>Sat, 08 Mar 2025 20:33:33 +0800</pubDate><description><![CDATA[给定两个整数数组 gas 和 cost ，如果你可以按顺序绕环路行驶一周，则返回出发时加油站的编号，否则返回 -1。你有一辆油箱容量无限的的汽车，从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发，开始时油箱为空。再尝试从后向前跑，找到一个站，这个站的剩余油耗可以填补最小油量的损耗，说明从这里开始，可以完成一圈。在一条环路上有 n 个加油站，其中第 i 个加油站有汽油 gas[i] 升。如果最后，最小油量不为负数，说明路上没有一次缺油，0就是答案；]]></description><category></category></item><item><title><![CDATA[算法-贪心篇07-K 次取反后最大化的数组和]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146122021</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146122021</guid><author>Buling_0</author><pubDate>Sat, 08 Mar 2025 20:27:21 +0800</pubDate><description><![CDATA[情况三：k比负数的数量大，没有数据为0；如果剩下的次数是2的倍数，结果不变。如果剩下的次数不是2的倍数，在已经变完的数据中选一个最小的取反。情况二：k比负数的数量大，但是有数据为0；因为零把剩下取反的次数全部消耗完，取反不影响；选择某个下标 i 并将 nums[i] 替换为 -nums[i]。重复这个过程恰好 k 次。可以多次选择同一个下标 i。对数组进行排序，优先处理最小的复数；以这种方式修改数组后，返回数组 可能的最大和。情况一：k比负数的数量少，直接结束；最后，把数据相加得出结果。]]></description><category></category></item><item><title><![CDATA[算法-贪心篇06-跳跃游戏 II]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146121886</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146121886</guid><author>Buling_0</author><pubDate>Sat, 08 Mar 2025 20:18:14 +0800</pubDate><description><![CDATA[太难想了，边界条件来来回回调了好多次，思路上是对的。]]></description><category></category></item><item><title><![CDATA[算法-贪心篇05-跳跃游戏]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146108667</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146108667</guid><author>Buling_0</author><pubDate>Sat, 08 Mar 2025 00:31:01 +0800</pubDate><description><![CDATA[优化非常好，之前暴力解法是551ms，击败了6.25%；这次优化后0ms，击败100%，成就感满满。这不就是算法的魅力吗？]]></description><category></category></item><item><title><![CDATA[算法-贪心篇04-买卖股票的最佳时机 II]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146108627</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146108627</guid><author>Buling_0</author><pubDate>Sat, 08 Mar 2025 00:22:07 +0800</pubDate><description><![CDATA[很简单，只要相隔的两天股票是涨价我就买卖，如果是连续涨价可以看成中间那天我先卖后买，等于没有买卖就行了。然后就是求差值，把差值为正的加上就行，很简单的一题。在每一天，你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买，然后在 同一天 出售。给你一个整数数组 prices ，其中 prices[i] 表示某支股票第 i 天的价格。返回 你能获得的 最大 利润。]]></description><category></category></item><item><title><![CDATA[算法-回溯篇13-N 皇后]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146089365</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146089365</guid><author>Buling_0</author><pubDate>Fri, 07 Mar 2025 10:46:23 +0800</pubDate><description><![CDATA[其实这里都是回溯的标准模板，花了一些时间，还是可以做出来的。这道题目和数独很像，但是哪一题我用同样的思路会超时，我可能需要继续思考一下数独应该怎么解决。]]></description><category></category></item><item><title><![CDATA[算法-贪心篇03-最大子数组和]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146087541</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146087541</guid><author>Buling_0</author><pubDate>Fri, 07 Mar 2025 10:36:46 +0800</pubDate><description><![CDATA[给你一个整数数组 nums ，请你找出一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和。子数组是数组中的一个连续部分。]]></description><category></category></item><item><title><![CDATA[算法-贪心篇02-摆动序列]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146082543</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146082543</guid><author>Buling_0</author><pubDate>Thu, 06 Mar 2025 23:08:14 +0800</pubDate><description><![CDATA[老弟我还得练。]]></description><category></category></item><item><title><![CDATA[算法-贪心篇01-分发饼干]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146082410</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146082410</guid><author>Buling_0</author><pubDate>Thu, 06 Mar 2025 23:00:35 +0800</pubDate><description><![CDATA[对每个孩子 i，都有一个胃口值 g[i]，这是能让孩子们满足胃口的饼干的最小尺寸；并且每块饼干 j，都有一个尺寸 s[j]。如果 s[j] >= g[i]，我们可以将这个饼干 j 分配给孩子 i ，这个孩子会得到满足。如果没有分的这个最大的饼干不能满足没有分的小孩的胃口，那么就不给这个小孩分了（怎么感觉是在说找工作呢，胃口大了不是好事，你要顺位往下比别人强的同时还要看剩下的饼干是否符合你的条件。）因为当前情况下，没有合适的饼干给这个小孩了，就不管了。假设你是一位很棒的家长，想要给你的孩子们一些小饼干。]]></description><category></category></item><item><title><![CDATA[探讨一下C++和C#在线性表上的相同和不同]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146078988</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146078988</guid><author>Buling_0</author><pubDate>Thu, 06 Mar 2025 20:41:52 +0800</pubDate><description><![CDATA[C++ 和 C# 的 List 的异同。]]></description><category></category></item><item><title><![CDATA[算法-回溯篇12-全排列 II]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146052041</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146052041</guid><author>Buling_0</author><pubDate>Wed, 05 Mar 2025 20:29:00 +0800</pubDate><description><![CDATA[给定一个可包含重复数字的序列 nums ，按任意顺序 返回所有不重复的全排列。在上一题的思路上数字有重复，多加上每层判断这个数字有没有在本层使用过即可。]]></description><category></category></item><item><title><![CDATA[算法-回溯篇11-全排列]]></title><link>https://blog.youkuaiyun.com/Buling_0/article/details/146051708</link><guid>https://blog.youkuaiyun.com/Buling_0/article/details/146051708</guid><author>Buling_0</author><pubDate>Wed, 05 Mar 2025 20:11:50 +0800</pubDate><description><![CDATA[给定一个不含重复数字的数组 nums ，返回其 所有可能的全排列。你可以 按任意顺序 返回答案。官方的题解使用了一个辅助数组，这样子可以省去很多内存，以及频繁创建和在数组中删除元素的开销。但是我每次需要重新生成一个新的数组，并且赋给下一层。每次选取一个数据，然后把该数据从数组中删除。1ms，不是最优的解法。]]></description><category></category></item></channel></rss>