<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Cain399的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Cain399</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Cain399]]></copyright><item><title><![CDATA[torchdrug学习笔记-G2G例子实验过程问题解决]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/120004004</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/120004004</guid><author>Cain399</author><pubDate>Mon, 30 Aug 2021 19:54:29 +0800</pubDate><description><![CDATA[https://torchdrug.ai/
近日，Mila 唐建团队开源了机器学习药物研发平台 TorchDrug。TorchDrug 是一个专为药物研发设计的机器学习平台，涵盖从图机器学习（图神经网络、几何深度学习和知识图谱）、深度生成模型到强化学习的技术，它提供了一个全面而灵活的接口来支持 PyTorch 中药物发现模型的快速原型设计。
这个工具包很新很新，里面有化合物逆合成预测G2G的实现，近日想拿来用一下学习一下，但真正实践过程发现有些地方可能跟官网提供的文档有不一样的地方，在此做个记录。
Retr]]></description><category></category></item><item><title><![CDATA[前端面试准备]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/119955919</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/119955919</guid><author>Cain399</author><pubDate>Fri, 27 Aug 2021 16:48:58 +0800</pubDate><description><![CDATA[基于自己的项目与其他人面经中的问题做个小结
1、为什么采用Node做服务器，Node的优势是什么？
本身是前端开发使用nodejs更熟悉一些，nodejs开发服务器也是比较便捷、迅速。
Node.js优点：
1）采用事件驱动、异步编程，为网络服务而设计。其实Javascript的匿名函数和闭包特性非常适合事件驱动、异步编程。而且JavaScript也简单易学，很多前端设计人员可以很快上手做后端设计。
2）Node.js非阻塞模式的IO处理给Node.js带来在相对低系统资源耗用下的高性能与出众的负载能力，非]]></description><category></category></item><item><title><![CDATA[leetcode[每日一题]295. 数据流的中位数]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/119951234</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/119951234</guid><author>Cain399</author><pubDate>Fri, 27 Aug 2021 13:40:07 +0800</pubDate><description><![CDATA[295. 数据流的中位数
题目描述
中位数是有序列表中间的数。如果列表长度是偶数，中位数则是中间两个数的平均值。
例如，
[2,3,4] 的中位数是 3
[2,3] 的中位数是 (2 + 3) / 2 = 2.5
设计一个支持以下两种操作的数据结构：
void addNum(int num) - 从数据流中添加一个整数到数据结构中。
double findMedian() - 返回目前所有元素的中位数。
示例：
addNum(1)
addNum(2)
findMedian() -&gt; 1.5
addNu]]></description><category></category></item><item><title><![CDATA[leetcode[每日一题]552. 学生出勤记录 II]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/119779501</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/119779501</guid><author>Cain399</author><pubDate>Wed, 18 Aug 2021 14:37:04 +0800</pubDate><description><![CDATA[题目描述
可以用字符串表示一个学生的出勤记录，其中的每个字符用来标记当天的出勤情况（缺勤、迟到、到场）。记录中只含下面三种字符：
‘A’：Absent，缺勤
‘L’：Late，迟到
‘P’：Present，到场
如果学生能够 同时 满足下面两个条件，则可以获得出勤奖励：
按总出勤 计，学生缺勤（‘A’）严格少于两天。
学生 不会 存在 连续 3 天或 连续 3 天以上的迟到（‘L’）记录。
给你一个整数 n ，表示出勤记录的长度（次数）。请你返回记录长度为 n 时，可能获得出勤奖励的记录情况 数量 。答案可]]></description><category></category></item><item><title><![CDATA[leetcode每日一题49. 字母异位词分组+map、auto学习]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/111159587</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/111159587</guid><author>Cain399</author><pubDate>Mon, 14 Dec 2020 12:26:38 +0800</pubDate><description><![CDATA[49. 字母异位词分组
给定一个字符串数组，将字母异位词组合在一起。字母异位词指字母相同，但排列不同的字符串。
示例:
输入:
[“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
输出:
[
[“ate”,“eat”,“tea”],
[“nat”,“tan”],
[“bat”]
]
说明：
所有输入均为小写字母。
不考虑答案输出的顺序。
代码：
class Solution {
public:
    vector&lt;vector&lt;string&gt;&gt; g]]></description><category></category></item><item><title><![CDATA[小白级将网上找的Bootstrap模板导入到Django中使用]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/109631109</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/109631109</guid><author>Cain399</author><pubDate>Wed, 11 Nov 2020 21:07:07 +0800</pubDate><description><![CDATA[将网上找的Bootstrap模板导入到Django中使用
1、首先下载一个bootstrap框架
2、下好后在你的django应用app内建一个static文件夹
再建一个bootstrap文件夹
将下载好的bootstrap dist文件夹中的css、font、js文件夹复制到项目的static/bootstrap文件夹中
3、在网络上下载了一个bootstrap模板
将模板中的css、js与之前在项目中的css、js合并，将模板中的其他文件夹例如：img等直接复制到css同目录下；将模板中的HTML文件]]></description><category></category></item><item><title><![CDATA[因更换数据库导致model重新迁移时在MySQL中没有生成对应表 解决方法]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/109137485</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/109137485</guid><author>Cain399</author><pubDate>Sat, 17 Oct 2020 20:07:16 +0800</pubDate><description><![CDATA[数据库迁移问题：
在执行python manage.py makemigrations迁移命令之后，正常输出并生成迁移文件 ，查看数据库并没有生成对应的表；
解决办法：
1、首先删除migrations目录下的迁移文件
2、执行 python manage.py makemigrations your-app-name
3、mysql中执行delete from django_migrations where app = “your-app-name”;
4、重新执行迁移命令：python manage.p]]></description><category></category></item><item><title><![CDATA[使用Django框架搭建最最简单的web应用流程-学习笔记]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/108984314</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/108984314</guid><author>Cain399</author><pubDate>Fri, 09 Oct 2020 19:57:20 +0800</pubDate><description><![CDATA[使用Django框架搭建最最简单的web应用流程
第一步：创建项目
在pycharm的Terminal处使用命令：django-admin startproject &lt;项目名&gt;

第二步：修改settings配置文件
因为我的项目需要连接的后台数据库是MySQL不是python默认的sqlite3，所以需要修改settings文件中有关数据库的配置项。
（1)首先要去MySQL里建一个数据库，在这里我建了一个名为testdatabase的数据库。
（2）修改settings中DATABASE字典]]></description><category></category></item><item><title><![CDATA[DHU高级程序设计-leetcode刷题剑指 Offer 57 - II. 和为s的连续正数序列]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/108822865</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/108822865</guid><author>Cain399</author><pubDate>Sun, 27 Sep 2020 18:20:04 +0800</pubDate><description><![CDATA[235. 二叉搜索树的最近公共祖先
题目描述：
利用二叉搜索树的特点，如果p、q的值都小于root，说明p q 肯定在root的左子树中；如果p q都大于root，说明肯定在root的右子树中，如果一个在左一个在右 则说明此时的root记为对应的最近公共祖先

...]]></description><category></category></item><item><title><![CDATA[DHU高级程序设计-leetcode刷题235. 二叉搜索树的最近公共祖先]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/108822961</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/108822961</guid><author>Cain399</author><pubDate>Sun, 27 Sep 2020 10:39:22 +0800</pubDate><description><![CDATA[235. 二叉搜索树的最近公共祖先
题目描述：
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
例如，给定如下二叉搜索树:  root = [6,2,8,0,4,7,9,null,null,3,5]


]]></description><category></category></item><item><title><![CDATA[DHU高级程序语言设计-leetcode113. 路径总和 II]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/108808763</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/108808763</guid><author>Cain399</author><pubDate>Sat, 26 Sep 2020 10:32:02 +0800</pubDate><description><![CDATA[113. 路径总和 II
题目描述：
给定一个二叉树和一个目标和，找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
说明: 叶子节点是指没有子节点的节点。
示例:
给定如下二叉树，以及目标和 sum = 22，

思路：本菜鸡终于想到了dfs深搜，沿途保留所有结点路径，遇到符合条件的保存路径
代码：
class Solution {
    vector&lt;vector&lt;int&gt;&gt; res;
    vector&lt;int&gt; nums;
    //int count]]></description><category></category></item><item><title><![CDATA[DHU高级程序语言设计-leetcode78 子集]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/108692560</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/108692560</guid><author>Cain399</author><pubDate>Sat, 26 Sep 2020 10:23:14 +0800</pubDate><description><![CDATA[给定一组不含重复元素的整数数组 nums，返回该数组所有可能的子集（幂集）。
说明：解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:[
[3],
[2],
[1],
[1,2],
[1,3],
[1,2,3],
[ ]
]
参考题解：https://leetcode-cn.com/problems/subsets/solution/78-zi-ji-hui-su-sou-suo-fa-jing-dian-ti-mu-xiang-2/
回溯算法
代码：
在这里插入代码片

...]]></description><category></category></item><item><title><![CDATA[DHU高级程序语言设计-leetcode刷题148排序链表]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/108367184</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/108367184</guid><author>Cain399</author><pubDate>Wed, 02 Sep 2020 23:17:45 +0800</pubDate><description><![CDATA[148排序链表
题目描述：
在 O(n log n) 时间复杂度和常数级空间复杂度下，对链表进行排序。
示例 1:
输入: 4-&gt;2-&gt;1-&gt;3
输出: 1-&gt;2-&gt;3-&gt;4
示例 2:
输入: -1-&gt;5-&gt;3-&gt;4-&gt;0
输出: -1-&gt;0-&gt;3-&gt;4-&gt;5
输入范例：
5
-1 5 3 4 0
输出范例：
head–&gt;-1–&gt;0–&gt;3–&gt;4–&gt;5–&gt;tail
思路：
依我浅薄的知识…]]></description><category></category></item><item><title><![CDATA[DHU高级程序语言设计-leetcode刷题143重排链表]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/108346737</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/108346737</guid><author>Cain399</author><pubDate>Tue, 01 Sep 2020 17:26:53 +0800</pubDate><description><![CDATA[143重排链表
题目描述：
给定一个单链表 L：L0→L1→…→Ln-1→Ln ，将其重新排列后变为： L0→Ln→L1→Ln-1→L2→Ln-2→…
你不能只是单纯的改变节点内部的值，而是需要实际的进行节点交换。
示例 1:
给定链表 1-&gt;2-&gt;3-&gt;4, 重新排列为 1-&gt;4-&gt;2-&gt;3.
示例 2:
给定链表 1-&gt;2-&gt;3-&gt;4-&gt;5, 重新排列为 1-&gt;5-&gt;2-&gt;4-&gt;3.
输入示例：
5
1 2 3 4 5
]]></description><category></category></item><item><title><![CDATA[DHU-高级程序语言设计leetcode436.寻找右区间]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/107856784</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/107856784</guid><author>Cain399</author><pubDate>Fri, 07 Aug 2020 10:54:40 +0800</pubDate><description><![CDATA[56 寻找右区间
问题描述 :
给定一组区间（包含起始点和终点），对于每一个区间 i，检查是否存在一个区间 j，它的起始点大于或等于区间 i 的终点，这可以称为 j 在 i 的“右侧”。对于任何区间，你需要存储的满足条件的区间 j 的最小索引，这意味着区间 j 有最小的起始点可以使其成为“右侧”区间。如果区间 j 不存在，则将区间 i 存储为 -1。最后，你需要输出一个值为存储的区间值的数组。
注意:你可以假设区间的终点总是大于它的起始点。
你可以假定这些区间都不具有相同的起始点。
示例 1:
输入: [ ]]></description><category></category></item><item><title><![CDATA[DHU-高级程序语言设计leetcode330按要求补齐数组]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/107508269</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/107508269</guid><author>Cain399</author><pubDate>Wed, 22 Jul 2020 11:15:33 +0800</pubDate><description><![CDATA[330按要求补齐数组
问题描述 :
给定一个已排序的正整数数组 nums，和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中，使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。
示例 1:
输入: nums = [1,3], n = 6
输出: 1
解释:根据 nums 里现有的组合 [1], [3], [1,3]，可以得出 1, 3, 4。现在如果我们将 2 添加到 nums 中， 组合变为: [1], ]]></description><category></category></item><item><title><![CDATA[DHU-高级程序语言设计-leetcode刷题15和20 接雨水1.2]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/107341023</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/107341023</guid><author>Cain399</author><pubDate>Tue, 14 Jul 2020 16:35:55 +0800</pubDate><description><![CDATA[15 接雨水
问题描述 :
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图，计算按此排列的柱子，下雨之后能接多少雨水。

上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图，在这种情况下，可以接 6 个单位的雨水（蓝色部分表示雨水）。
示例:
输入: [0,1,0,2,1,0,1,3,2,1,2,1]
输出: 6
他人题解
自己画了画才明白

单调栈…emmm不是很懂
20 接雨水 II
他人解题报告
供我好好学习…

...]]></description><category></category></item><item><title><![CDATA[DHU高级程序语言设计-leetcode刷题18]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/107334594</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/107334594</guid><author>Cain399</author><pubDate>Tue, 14 Jul 2020 15:03:52 +0800</pubDate><description><![CDATA[18 前 K 个高频元素
问题描述：给定一个非空的整数数组，返回其中出现频率前 k 高的元素。示例 1:
输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]
示例 2:
输入: nums = [1], k = 1
输出: [1]
说明：
你可以假设给定的 k 总是合理的，且 1 ≤ k ≤ 数组中不相同的元素的个数。
你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。题目数据保证答案唯一，换句话说，数组中前 k 个高频元素的集合是唯一的。输出时，首先输]]></description><category></category></item><item><title><![CDATA[DHU-高级程序语言设计链表基础9长整数加法运算]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/107296350</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/107296350</guid><author>Cain399</author><pubDate>Sun, 12 Jul 2020 11:21:35 +0800</pubDate><description><![CDATA[9长整数加法运算
呃 这个题巨长 没难度就是细节特别特别多…第一次有耐心写这么长 最后debug找了同学帮忙 感谢我的小伙伴（鞠躬
问题描述：
假设2个任意长度的整数x、y分别由双向链表A和B存储，现要求设计一个算法，实现x+y。计算结果存储在链表C中。
说明：由于A和B输出时需要从头至尾遍历，而做加法时需要从尾至头遍历，因此使用双向链表存储。可以从长整数的低位开始拆分（4位为一组，即不超过9999的非负整数），依次存放在链表的每个结点的数据域中；头结点的数据域存放正负数标志（正数或0：1，负数：-1）。
]]></description><category></category></item><item><title><![CDATA[DHU高级程序语言设计-leetcode刷题12]]></title><link>https://blog.youkuaiyun.com/Cain399/article/details/107270396</link><guid>https://blog.youkuaiyun.com/Cain399/article/details/107270396</guid><author>Cain399</author><pubDate>Fri, 10 Jul 2020 22:10:02 +0800</pubDate><description><![CDATA[代码参考：https://blog.youkuaiyun.com/Krystal优快云/article/details/100927294
加了详细注释 供自己学习
题目描述：给出一个字符串 s（仅含有小写英文字母和括号）。请你按照从括号内到外的顺序，逐层反转每对匹配括号中的字符串，并返回最终的结果。
注意，您的结果中不应 包含任何括号。
示例 1：输入：s = “(abcd)”  输出：“dcba”
示例 2：输入：s = “(u(love)i)”  输出：“iloveu”
示例 3：输入：s = “(ed(et(]]></description><category></category></item></channel></rss>