<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[timathy33的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/timathy33</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; timathy33]]></copyright><item><title><![CDATA[Unity Addressable 实现Build时自定义剔除资源组]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/157329967</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/157329967</guid><author>timathy33</author><pubDate>Sat, 24 Jan 2026 18:27:39 +0800</pubDate><description><![CDATA[本文介绍了一种通过自定义Addressable Assets构建脚本来实现资源组过滤的方法。核心原理是重写BuildScriptBase的ProcessGroup方法，在需要剔除时返回空值。实现步骤包括：创建标记Schema（BuildExclusionSchema），继承BuildScriptPackedMode实现自定义构建模式（BuildScriptPackedFilterMode），为资源组添加Schema并设置过滤类型，最后将自定义构建脚本添加到AA设置中。注意事项包括构建会触发重编译可能导致日志]]></description><category></category></item><item><title><![CDATA[在Unity编辑模式下运行Mono中的方法]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/144183740</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/144183740</guid><author>timathy33</author><pubDate>Mon, 02 Dec 2024 12:07:09 +0800</pubDate><description><![CDATA[代码写的很随便也很丑陋，望包涵，其次EditorUpdateMethodManager也是可以继续扩展的，我只写了Update的，也可以写其他时机的，在EditorUpdateMethodAttribut里加个触发时机的枚举之类的，然后在Manager里根据枚举的值来实现在不同的地方触发，不过感觉作用不大于是也懒得写了。]]></description><category></category></item><item><title><![CDATA[UniTask基础之正确的调用方式]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/143635126</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/143635126</guid><author>timathy33</author><pubDate>Fri, 08 Nov 2024 21:41:11 +0800</pubDate><description><![CDATA[起因是在某视频网站上看UniTask的相关视频，发现Up的用法直接就犯了官方文档上提到的错误，于是姑且记一下。]]></description><category></category></item><item><title><![CDATA[UniTask/Unity的PlayerLoopTiming触发顺序]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/143634867</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/143634867</guid><author>timathy33</author><pubDate>Fri, 08 Nov 2024 21:07:02 +0800</pubDate><description><![CDATA[开始尝试在项目中使用UniTask，发现其中的UniTask.Yield确实很好用，还可以传入PlayerLoopTiming来更细致的调整代码时机，不过平常在Mono中接触的只有Awake，Start，Update等常用Timing，其他的就没怎么接触了，虽然看名字也大概能明白，但姑且还是测试一下。]]></description><category></category></item><item><title><![CDATA[栈的压入、弹出序列]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/118087454</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/118087454</guid><author>timathy33</author><pubDate>Mon, 21 Jun 2021 15:27:11 +0800</pubDate><description><![CDATA[剑指 Offer 31. 栈的压入、弹出序列
输入两个整数序列，第一个序列表示栈的压入顺序，请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如，序列 {1,2,3,4,5} 是某栈的压栈序列，序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列，但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/zhan-de-ya-ru-dan-chu-xu-lie-lcof
如]]></description><category></category></item><item><title><![CDATA[132 模式]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/118051980</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/118051980</guid><author>timathy33</author><pubDate>Sat, 19 Jun 2021 13:03:16 +0800</pubDate><description><![CDATA[456. 132 模式
给你一个整数数组 nums ，数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成，并同时满足：i &lt; j &lt; k 和 nums[i] &lt; nums[k] &lt; nums[j] 。
如果 nums 中存在 132 模式的子序列 ，返回 true ；否则，返回 false 。
示例 1：

输入：nums = [1,2,3,4]
输出：false
解释：序列中不存在 132 模式的子序列。

来源：力扣]]></description><category></category></item><item><title><![CDATA[用randX()实现randY()——随机数生成题目]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/117956321</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/117956321</guid><author>timathy33</author><pubDate>Wed, 16 Jun 2021 14:25:55 +0800</pubDate><description><![CDATA[470. 用 Rand7() 实现 Rand10()
以前看见这题就没有点进去的欲望，因为完全不懂，今天点进去看了看题解，总算是会写了，但是依旧不懂啊，只是会用结论罢了，以后有空再细细研究一下原理把

测试

结论：
(randX() - 1)*Y + randY() 可以等概率的生成[1, X * Y]范围的随机数


说高级的之前，先来点好理解的方法：把任何随机函数转成rand01()即随机生成0和1的函数，然后用0，1，以二进制的方式求得目标数值
题目给了个rand7()
1，2，3，4，5，6，7
]]></description><category></category></item><item><title><![CDATA[寻找重复数]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/117924928</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/117924928</guid><author>timathy33</author><pubDate>Tue, 15 Jun 2021 15:12:53 +0800</pubDate><description><![CDATA[287. 寻找重复数
给定一个包含 n + 1 个整数的数组 nums ，其数字都在 1 到 n 之间（包括 1 和 n），可知至少存在一个重复的整数。
假设 nums 只有 一个重复的整数 ，找出 这个重复的数 。
你设计的解决方案必须不修改数组 nums 且只用常量级 O(1) 的额外空间。
来源：力扣（LeetCode）
题目不难，但是要求很严格，不修改原数组，有要求只用O(1)空间，进阶条件还要满足O(n)时间…
如果只要求O(1)空间的话，可以排序+查找，如果要求O(n)时间，可以用哈希表
如果要]]></description><category></category></item><item><title><![CDATA[数组中数字出现的次数 II]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/117922991</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/117922991</guid><author>timathy33</author><pubDate>Tue, 15 Jun 2021 14:20:14 +0800</pubDate><description><![CDATA[剑指 Offer 56 - II. 数组中数字出现的次数 II
在一个数组 nums 中除一个数字只出现一次之外，其他数字都出现了三次。请找出那个只出现一次的数字。
示例 1：
输入：nums = [3,4,3,3]
输出：4
来源：力扣（LeetCode）
思路一：
哈希表，很容易想到，就不细说了
思路二：
位运算统计
原理我也不想说了，看大佬的讲解吧????这
那么不搞高级的，直接用32位的数组来计数就行，不过这里注意，c++的数字是有符号位的，所以其实只需要31位
，因为题目的数都是正数，不过就算有负]]></description><category></category></item><item><title><![CDATA[数字拆分]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/117902624</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/117902624</guid><author>timathy33</author><pubDate>Mon, 14 Jun 2021 13:54:12 +0800</pubDate><description><![CDATA[343. 整数拆分
剑指 Offer 14- I. 剪绳子
这两题都是一样的，题目要求就是给你应该整数，要你把它拆分成n个整数相加的形式，而且整数的乘积必须为所有可能组合的最大值
这一题主要还是考数学，如果要满足题意，只有一个要求
尽量多的拆3出来（3以下的数字除外）
这是数学定理，反正我也不会证明，所以用就完事了

比如5，我们先拆一个3，变成3+2，好剩下的2不能再拆了，那么这就是答案（3 * 2）了
拆出来到最后只有2，3，4这三种选择，为什么是4？因为4如果拆成3+1的话，那不是亏了嘛，莫名其妙多个]]></description><category></category></item><item><title><![CDATA[leetcode——背包问题]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/117626310</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/117626310</guid><author>timathy33</author><pubDate>Mon, 07 Jun 2021 14:25:50 +0800</pubDate><description><![CDATA[初识背包问题
算法题也做了有200多题了，终于准备刷一波背包问题，花了点时间写了一题中等难度的，其实就是动态规划
按题目类型来分有三种，完全背包，0-1背包
0-1背包就是指货物只有两种状态，装或不装，不能多装，也不能拆一半装
完全背包就是指同种类的货物是无限的，可以无限重复选取
动态规划：
今天写的是子集背包，所谓子集背包，就是直接或间接给出一个目标值target，然后让你在货物中选择，看看能不能正好凑出一堆价值为target的子集，所以从货物的选取上来看，是属于0-1背包问题的一种
416. 分割等和子]]></description><category></category></item><item><title><![CDATA[摩尔投票法]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/117559840</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/117559840</guid><author>timathy33</author><pubDate>Fri, 04 Jun 2021 14:44:37 +0800</pubDate><description><![CDATA[今天写了一题简单题的算法题
169. 多数元素
给定一个大小为 n 的数组，找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的，并且给定的数组总是存在多数元素。
示例 1：
输入：[3,2,3]
输出：3

来源：力扣（LeetCode）
实现目标很简单，哈希表存出现次数，或者排序直接取中位数，但都不是最完美的
排序时间复杂度降不下来O(NlogN)，当然也可以用快速选择（基于随机快速排序改进），直接选出中位数，平均期望时间复杂度也为O(N),但是有点大]]></description><category></category></item><item><title><![CDATA[最长连续序列]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/117354929</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/117354929</guid><author>timathy33</author><pubDate>Fri, 28 May 2021 11:04:50 +0800</pubDate><description><![CDATA[128. 最长连续序列
给定一个未排序的整数数组 nums ，找出数字连续的最长序列（不要求序列元素在原数组中连续）的长度。
进阶：你可以设计并实现时间复杂度为 O(n) 的解决方案吗？
示例 1：
输入：nums = [100,4,200,1,3,2]
输出：4
解释：最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

来源：力扣（LeetCode）
简单一点的思路：
左右一起搜索，直到边界
期间进行计数并标记，避免重复的查找，标记的办法很多，可以用unordered_map&lt;int,]]></description><category></category></item><item><title><![CDATA[版本号比较]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/117329920</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/117329920</guid><author>timathy33</author><pubDate>Thu, 27 May 2021 15:49:10 +0800</pubDate><description><![CDATA[165. 比较版本号
给你两个版本号 version1 和 version2 ，请你比较它们。
版本号由一个或多个修订号组成，各修订号由一个 ‘.’ 连接。每个修订号由 多位数字 组成，可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号，下标从 0 开始，最左边的修订号下标为 0 ，下一个修订号下标为 1 ，以此类推。例如，2.5.33 和 0.1 都是有效的版本号。
比较版本号时，请按从左到右的顺序依次比较它们的修订号。比较修订号时，只需比较 忽略任何前导零后的整数值 。也就是说，修订号 ]]></description><category></category></item><item><title><![CDATA[最长有效括号]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/116921066</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/116921066</guid><author>timathy33</author><pubDate>Tue, 18 May 2021 16:04:33 +0800</pubDate><description><![CDATA[32. 最长有效括号
给你一个只包含 ‘(’ 和 ‘)’ 的字符串，找出最长有效（格式正确且连续）括号子串的长度。
示例 1：
输入：s = "(()"
输出：2
解释：最长有效括号子串是 "()"

示例 2：
输入：s = ")()())"
输出：4
解释：最长有效括号子串是 "()()"

来源：力扣（LeetCode）
这一题真的太有意思了，栈，动态规划，还有括号计数，都是很方便很巧妙的方法，但我只会最low的暴力求每个子串的最大长度，哈哈????
（一）
先说说括号计数的方法吧，顾名思义就是计数左]]></description><category></category></item><item><title><![CDATA[leetcode学习记录_前缀和]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/116848573</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/116848573</guid><author>timathy33</author><pubDate>Sat, 15 May 2021 15:32:50 +0800</pubDate><description><![CDATA[560. 和为K的子数组
给定一个整数数组和一个整数 k，你需要找到该数组中和为 k 的连续的子数组的个数。
示例 1 :
输入:nums = [1,1,1], k = 2
输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。

来源：力扣（LeetCode）
先说说简单的思路：
最简单的当然是两个for遍历数组，让每一个下标都作为起点，然后从起点遍历到结尾，看看中间有多少个连续的子数组和为k，这里我就随便写写核心部分
	int sum = 0,res = 0
	for(int L = 0;L&l]]></description><category></category></item><item><title><![CDATA[leetcode学习记录_k个数]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/116763776</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/116763776</guid><author>timathy33</author><pubDate>Thu, 13 May 2021 22:07:01 +0800</pubDate><description><![CDATA[这种题目通常都是和堆，优先队列有关，即在插入数据的时候对数据进行排序
 

前 K 个高频元素

给你一个整数数组 nums 和一个整数 k ，请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。
进阶：你所设计算法的时间复杂度 必须 优于 O(n log n) ，其中 n 是数组大小。
示例 1:
输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]
先来个简单的思路，数组+自定义排序，当然，用上排序的时候就不满足题目进阶要求的O(n log n)了，因为排序]]></description><category></category></item><item><title><![CDATA[回溯算法]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/116654602</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/116654602</guid><author>timathy33</author><pubDate>Tue, 11 May 2021 18:00:43 +0800</pubDate><description><![CDATA[回溯算法 是一种穷举所有可能性的算法，也就是列举一棵决策树的所有路径
再说题目前，先说说选择层数和选择列表
如上所说，列举一棵树的所有路径，这里用[ a, b, c]的全排列来举个例子

蓝色的就是当前选择列表，红色的就是选择层数，一开始，选择列表为[a, b, c]所以我们有三种选择
而我们用递归实现回溯时，通常通过递归的调用进入下一层，而在回溯的函数里用for来列举当前选择列表
一般来说，使用回溯算法的题目可以分三种
三种在写法还是略有不同的，主要在结束条件上和for的初值等
一：排列
排列的思路比..]]></description><category></category></item><item><title><![CDATA[排序算法]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/116377248</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/116377248</guid><author>timathy33</author><pubDate>Mon, 03 May 2021 20:51:48 +0800</pubDate><description><![CDATA[冒泡排序
先来个最简单的，一般都是最先接触的算法：冒泡排序
冒泡排序的思路也很简单，用升序排序来看，就是依次比较相邻的数字，如果前一个数字大于后面的那个，就交换两数（即把大数后移），假设数组长度为size，
第一轮比较完毕时，就把最大数移动到了  下标size-1 处
第二轮就在下标0到size-2中找到第二大的数字，并移动到下标size-2处，
循环往复，循环size-1 或 size轮即可完成排序
代码也很简单：
void BubbleSort(vector&lt;int&gt;&amp; nums)
]]></description><category></category></item><item><title><![CDATA[leetcode学习记录_dfs(深度优先搜索)]]></title><link>https://blog.youkuaiyun.com/timathy33/article/details/116350895</link><guid>https://blog.youkuaiyun.com/timathy33/article/details/116350895</guid><author>timathy33</author><pubDate>Sun, 02 May 2021 10:58:43 +0800</pubDate><description><![CDATA[200. 岛屿数量
给你一个由 ‘1’（陆地）和 ‘0’（水）组成的的二维网格，请你计算网格中岛屿的数量。
岛屿总是被水包围，并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。
此外，你可以假设该网格的四条边均被水包围。
示例 1：
输入：grid = [
[“1”,“1”,“1”,“1”,“0”],
[“1”,“1”,“0”,“1”,“0”],
[“1”,“1”,“0”,“0”,“0”],
[“0”,“0”,“0”,“0”,“0”]
]
输出：1
来源：力扣（LeetCode）
思路：
遍历二]]></description><category></category></item></channel></rss>