<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[小泽爱刷题的博客]]></title><description><![CDATA[知行合一，克己复礼。]]></description><link>https://blog.youkuaiyun.com/m0_48938554</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_48938554]]></copyright><item><title><![CDATA[回溯算法，hot100]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/142592071</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/142592071</guid><author>m0_48938554</author><pubDate>Fri, 27 Sep 2024 14:05:34 +0800</pubDate><description><![CDATA[选”：在循环中显式地将当前元素加入路径并继续递归。“不选”：通过递归和循环控制实现。在一次循环结束或跳过时，自然不选择该元素，转而选择后续的元素，这就相当于“不选”。语句意义适用场景检查变量是否为空（包括None和其他空值）判断是否有内容，常用于可迭代对象的处理检查变量是否严格等于None检查可选参数或函数返回值是否为None列表是对象: 列表在 Python 中是一个对象，拥有自己的内存地址。地址可用: 可以使用id()函数获取列表的内存地址，帮助理解其在内存中的存储情况。]]></description><category></category></item><item><title><![CDATA[HOT100，二叉树题解]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/142486025</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/142486025</guid><author>m0_48938554</author><pubDate>Tue, 24 Sep 2024 13:14:17 +0800</pubDate><description><![CDATA[依赖子树结果：当前节点的答案依赖于左右子树的计算结果，在左右子树处理完成后才能得到完整的信息。减少重复计算：后序遍历确保每个节点只被计算一次，避免重复计算。全局状态更新的正确性：在处理完所有子树信息之后更新全局状态，保证更新的准确性。例如，在二叉树直径问题中，后序位置可以确保我们计算的直径涵盖所有可能的路径。🤒后序位置的代码最强，不仅可以获取参数数据，还可以同时获取到左右子树通过函数返回值传递回来的数据。所以，某些情况下把代码移到后序位置效率最高；有些事情，只有后序位置的代码能做。]]></description><category></category></item><item><title><![CDATA[HOT100，28-35题]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/142288528</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/142288528</guid><author>m0_48938554</author><pubDate>Sun, 15 Sep 2024 20:39:05 +0800</pubDate><description><![CDATA[虽然 Python 列表和数组是不同的数据结构，但在许多情况下，Python 设计得足够灵活，允许列表像数组一样使用。对于大部分日常编程任务，列表已经可以胜任，但在对性能和数据类型有更高要求时，使用数组（如numpy）会更为合适。列表的一些常用操作，灵活使用这些足以灵活运用python解题！！！Python 列表（list）是一个非常灵活和强大的数据结构，支持多种操作和方法。heapq在处理元组时会按照元组的顺序逐个比较。对于，优先比较node.val，如果node.val相同，再比较i，以此类推。]]></description><category></category></item><item><title><![CDATA[更换cuda版本]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/142266429</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/142266429</guid><author>m0_48938554</author><pubDate>Sat, 14 Sep 2024 21:13:17 +0800</pubDate><description><![CDATA[首先，删除现有的链接，可以使用rm：使用rm -rf命令会删除及其所有内容。确保这个链接是你要删除的，并且你不需要保留这个目录中的任何内容。然后，创建新的软链接，指向你想要的新路径这个命令将链接到。这样，所有指向的请求都会被重定向到。]]></description><category></category></item><item><title><![CDATA[【无标题】]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/142213828</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/142213828</guid><author>m0_48938554</author><pubDate>Fri, 13 Sep 2024 16:18:36 +0800</pubDate><description><![CDATA[print(torch.version.cuda)  # 检查 PyTorch 支持的 CUDA 版本print(torch.cuda.is_available())  # 检查是否能使用 GPU这三个术语指的是在使用 GPU 加速框架时涉及的不同组件。]]></description><category></category></item><item><title><![CDATA[leetcode18-27]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/142146194</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/142146194</guid><author>m0_48938554</author><pubDate>Wed, 11 Sep 2024 17:41:05 +0800</pubDate><description><![CDATA[将链表题目转换为数组来解决是可行的，并且在某些情况下可能更简单。但要注意额外的空间复杂度和可能的内存限制。如果链表非常大，直接在链表上操作可能更合适，以避免额外的内存开销。]]></description><category></category></item><item><title><![CDATA[知行合一！]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/142094873</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/142094873</guid><author>m0_48938554</author><pubDate>Tue, 10 Sep 2024 11:45:29 +0800</pubDate><description><![CDATA[王阳明的“知行合一”理念要求我们将所学的知识和理念付诸实践，通过实际行动来体现内心的理解。做到“知行合一”，需要从内心接受理念，逐步实践，持续反省和调整，同时保持言行一致和真实性。例子：如果你学习了时间管理的理论，可以从每天的工作计划开始实践，逐步形成有效的时间管理习惯。调整：根据反省的结果，及时调整自己的行为，确保它们与内心的知识和理念保持一致。例子：观察和学习成功的领导者或优秀的团队成员，他们如何将他们的理念付诸实践。学习：在实践中，新的经验和反馈将不断丰富和完善你的知识。]]></description><category></category></item><item><title><![CDATA[pycharm调试知识， 线程进程与深度学习]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/142094483</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/142094483</guid><author>m0_48938554</author><pubDate>Tue, 10 Sep 2024 11:33:22 +0800</pubDate><description><![CDATA[多线程在深度学习中主要用于I/O 密集型任务，如数据加载和预处理，以防止数据成为训练过程中的瓶颈。多进程常用于克服 GIL 的限制，处理 CPU 密集型任务，以及在分布式训练中并行化模型训练。GPU 并行计算是深度学习的核心，主要负责大规模矩阵运算和模型训练，并行性是由 GPU 硬件架构提供的，而不是通过 Python 的多线程机制。因此，深度学习中多线程的应用主要集中在数据加载、推理服务和辅助任务，而核心计算则由 GPU 完成并行化处理。多进程。]]></description><category></category></item><item><title><![CDATA[hot100,第10-15题 坚持]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/142066248</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/142066248</guid><author>m0_48938554</author><pubDate>Mon, 09 Sep 2024 18:40:27 +0800</pubDate><description><![CDATA[前缀和数组的长度为n + 1是因为它包括了从原始数组的起始位置到每个位置的和，以及一个额外的位置用于简化计算。这里的n是原始数组的长度。让我们详细解释一下这个设计。前缀和是一个数组的前缀和数组，其中每个元素表示从数组开始到当前位置的所有元素之和。前缀和数组prefix_sum局部最优：解决当前子问题的最优解。全局最优：所有子问题的最优解中最优的那个。动态规划通过结合局部最优解来逐步构建全局最优解。这种方法在许多优化问题中非常有效，特别是当问题具有最优子结构和重叠子问题的特性时。]]></description><category></category></item><item><title><![CDATA[hot100刷题第1-9题，三个专题哈希，双指针，滑动窗口]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/141998217</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/141998217</guid><author>m0_48938554</author><pubDate>Sat, 07 Sep 2024 16:33:59 +0800</pubDate><description><![CDATA[详细讲解hot100]]></description><category></category></item><item><title><![CDATA[dp子序列问题+时间复杂度分析]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/141939403</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/141939403</guid><author>m0_48938554</author><pubDate>Thu, 05 Sep 2024 19:48:40 +0800</pubDate><description><![CDATA[在动态规划中，选择的过程就是依据状态转移方程来进行的。状态转移方程告诉我们在当前状态下有可能的选择以及如何计算这些选择的结果。通过这样的选择，我们可以将复杂的问题拆解成更小的子问题，并通过这些子问题的解构建出原问题的解。子序列问题本身就相对子串、子数组更困难一些，因为前者是不连续的序列，而后两者是连续的，就算穷举你都不一定会，更别说求解相关的算法问题了。子序列是不连续的，而子串，子数组都是连续的序列。一般来说，这类问题都是让你求一个最长子序列，因为最短子序列就是一个字符嘛，没啥可问的。]]></description><category></category></item><item><title><![CDATA[动态规划,dp函数与dp数组，优先掌握dp函数法]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/141928185</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/141928185</guid><author>m0_48938554</author><pubDate>Thu, 05 Sep 2024 13:01:53 +0800</pubDate><description><![CDATA[memo数组是用来记录dp函数的计算结果的存储结构，它将动态规划中子问题的解缓存起来，以提高算法效率。你可以认为memo数组的每个元素对应于dp函数在某个位置的返回值，而dp函数通过检查memo来决定是否需要进行计算。这样理解下来，memo数组和dp函数的作用是协同的，但memo是静态存储，而dp是动态计算，它们共同构成了记忆化递归的核心机制。139. 单词拆分labuladong 题解思路memo = []]]></description><category></category></item><item><title><![CDATA[深度学习dataset等概念]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/141868264</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/141868264</guid><author>m0_48938554</author><pubDate>Tue, 03 Sep 2024 18:02:03 +0800</pubDate><description><![CDATA[反向传播是深度学习模型训练的核心步骤之一，它通过计算损失函数相对于模型参数的梯度，来更新这些参数。是 Python 的内置函数，用于将一个可遍历的数据对象（如列表、元组或字符串）组合为一个索引序列，同时列出数据和数据下标，一般用在 for 循环当中。函数会自动更新模型参数。具体来说，它会遍历所有参数，并使用优化器的更新规则（如SGD的权重衰减、Adam的梯度平方平均等）来更新每个参数。这段代码的用途是在训练深度学习模型时，通过反向传播和优化步骤，逐步调整模型参数，以最小化损失函数，从而提高模型的预测性能。]]></description><category></category></item><item><title><![CDATA[召回率和准确率理解]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/141857854</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/141857854</guid><author>m0_48938554</author><pubDate>Tue, 03 Sep 2024 11:58:25 +0800</pubDate><description><![CDATA[召回率衡量的是实际为正类的样本中被正确识别为正类的比例。]]></description><category></category></item><item><title><![CDATA[二分查找精炼回顾-kevin]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/141832556</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/141832556</guid><author>m0_48938554</author><pubDate>Mon, 02 Sep 2024 23:01:03 +0800</pubDate><description><![CDATA[二分查找总结，统一采用闭区间思考。  包含区间查找]]></description><category></category></item><item><title><![CDATA[回溯算法回顾]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/141828648</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/141828648</guid><author>m0_48938554</author><pubDate>Mon, 02 Sep 2024 19:56:18 +0800</pubDate><description><![CDATA[浅拷贝：创建一个新对象，但不递归复制子对象。换句话说，浅拷贝只复制了对象的引用，而不是实际的对象本身。对于不可变对象（如整数、字符串、元组），浅拷贝和深拷贝效果相同，因为不可变对象在 Python 中不能被修改。深拷贝：创建一个新对象，并递归复制所有的子对象。这样，即使子对象本身是一个可变对象，也会被独立复制，确保新对象和原对象完全独立。遇到回溯问题的时候要思考深拷贝还是浅拷贝问题，如果是碰到浅拷贝，赋值过去的只是引用，那么回溯之后最后加入res中的答案都是一样的！！不可变对象。]]></description><category></category></item><item><title><![CDATA[深度学习实践的一些基本概念]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/141820321</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/141820321</guid><author>m0_48938554</author><pubDate>Mon, 02 Sep 2024 15:05:04 +0800</pubDate><description><![CDATA[自动调用forward函数是 PyTorch 设计的一个关键特性，它提供了封装性、灵活性、一致性，并支持动态计算图，从而简化了神经网络模型的实现和使用。这种设计使得 PyTorch 成为一个强大且易于使用的深度学习框架。pytorch中，loss内也包括forward函数在 PyTorch 中，损失函数通常是用来计算模型预测值与真实值之间的差距，它本质上是一个计算过程。在自定义损失函数时，将其写成一个类并实现forward方法是为了遵循 PyTorch 的模块化设计和通用操作模式。写forward。]]></description><category></category></item><item><title><![CDATA[pycharm快捷键]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/141817143</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/141817143</guid><author>m0_48938554</author><pubDate>Mon, 02 Sep 2024 13:07:03 +0800</pubDate><description><![CDATA[alt + shift + ↓ 向下拉取当前行，    ctrl + shift + ↓ 将整个方法下移。ctrl + = 展开代码区域     ctrl + shift + - 收起文件中的所有区域。ctrl + w 选择文本光标处的单词，   ctrl + shift + w 撤销选择。ctrl + alt + shift + j 选择文件中的所有匹配项 ， 可以修改值。ctrl + d 复制光标所在的行  CTRL + Y 删除当前行。ctrl + f8给当前行设置断电。ctrl + 斜杠 注释行。]]></description><category></category></item><item><title><![CDATA[深度学习(二)]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/141760645</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/141760645</guid><author>m0_48938554</author><pubDate>Sat, 31 Aug 2024 23:09:33 +0800</pubDate><description><![CDATA[CUDA是一种并行计算的编程模型，提供了开发者利用GPU的工具和接口，适用于各种需要并行处理的应用程序。CuDNN是一个专门的加速库，建立在CUDA的基础上，针对深度学习中的神经网络操作进行了专门的优化，从而大幅提升计算效率。两者的结合，使得深度学习和其他计算密集型任务在GPU上能够以更快的速度、更高的效率完成Dataset：继承Dataset可以让你自定义如何获取和处理数据。这在处理复杂的数据集时非常有用，例如当数据需要从多个文件加载、进行特殊的预处理或处理非标准格式的数据时。DataLoader。]]></description><category></category></item><item><title><![CDATA[bfs理解加深，bfs多用来求最小xx问题]]></title><link>https://blog.youkuaiyun.com/m0_48938554/article/details/141718668</link><guid>https://blog.youkuaiyun.com/m0_48938554/article/details/141718668</guid><author>m0_48938554</author><pubDate>Fri, 30 Aug 2024 15:02:23 +0800</pubDate><description><![CDATA[因此，当你需要对字符串的某个字符进行修改时，必须先将字符串转换成一个可变的数据结构，比如列表，进行修改后再转换回字符串。base case写在开头，不写在递归里面，把能提到函数开头的判断逻辑都提到函数开头，因为递归部分是填写前中后序代码的位置，尽量不要和 base case 的逻辑混到一起，否则容易混乱。函数为啥会有返回值呢？回溯问题，关注树枝，也就是track这一点，例如经典的排列、组合问题，在穷举排列组合的时候，就是在树枝位置做选择（往。set具有的特性，无序性，唯一性， Python 中的。]]></description><category></category></item></channel></rss>