- 博客(158)
- 收藏
- 关注

原创 零基础深度学习Pytorch教程,一个小时快速入门(四)
Pytorch官网有非常优秀的教程,其中有几篇小短文属于名为DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ这个小专栏的内容,考虑到大家阅读英文文献有点困难,笔者打算花些时间做一下翻译,同时结合自己的理解做一些内容调整,原文链接贴在这里点此跳转。承接之前的内容,点此跳转到第三部分。好的我们开始第四部分,这也是最后一个部分。这一部分的内容让我们结合之前的知识进行简单的实战,学完这一部分就可以自己使用pytorch进行简单的模型搭建了,我们就直接开始了。现在你已
2021-10-11 17:36:29
2226
3
原创 BFS的解题模板
BFS作为可以得出最短路径的暴力搜索方法,在很多问题上都是可以直接使用的。直接给自己一个模板方便之后使用。 //一般来说是默认是一步的 int step = 1; Set<String> visited = new HashSet<>(); Queue<String> q = new LinkedList<>(); q.offer("0000"); visited.add("0000")
2022-05-08 20:16:00
513
原创 论文笔记 ELG: An Event Logic Graph
ELG: An Event Logic GraphAbstract1.Introduction2.Event Logic Graph2.1 Definition2.2 Three structures of ELG2.3 form of expression2.4 Abstract and generalized2.5 Relationship between Events3.Architecture3.1 Sequential Relation and Direction Recognition3.2 T
2022-04-27 14:36:04
1097
原创 论文笔记Learning Event Graph Knowledge for Abductive Reasoning
Learning Event Graph Knowledge for Abductive ReasoningAbstract1.Introduction2.BackgroundProblem FormalizationEvent Graph3.Ege-RoBERTa as a Conditional Variational Autoencoder Based Reasoning FrameworkPre-training Stage: Learning Event GraphFinetuning Stage
2022-04-23 14:31:09
1812
2
原创 零基础深度学习Pytorch教程,一个小时快速入门(三)
Pytorch官网有非常优秀的教程,其中有几篇小短文属于名为DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ这个小专栏的内容,考虑到大家阅读英文文献有点困难,笔者打算花些时间做一下翻译,同时结合自己的理解做一些内容调整,原文链接贴在这里点此跳转。承接之前的内容,点此跳转到第二部分。好的我们开始第三部分。这一部分的内容是神经网络,这一次就开始对整个网络进行介绍,为下一部分的实战做一个铺垫。神经网络可以使用torch.nn的包来构建。如今你已经了解过一些au
2021-10-05 14:46:17
453
原创 零基础深度学习Pytorch教程,一个小时快速入门(二)
Pytorch官网有非常优秀的教程,其中有几篇小短文属于名为DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ这个小专栏的内容,考虑到大家阅读英文文献有点困难,笔者打算花两天时间做一下翻译,同时结合自己的理解做一些内容调整,原文链接贴在这里点此跳转。承接之前的内容,点此跳转到第一部分。好的我们直接开始第二部分。这部分叫做一个平缓的对于pytorch自动求梯度的介绍。这里引入了一个函数torch.autograd,这是一个Pytorch用于增强神经网络训练的自动
2021-10-05 12:30:29
547
原创 零基础深度学习Pytorch教程,一个小时快速入门(一)
Pytorch官网有非常优秀的教程,其中有几篇小短文属于名为DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ这个小专栏的内容,考虑到大家阅读英文文献有点困难,笔者打算花两天时间做一下翻译,同时结合自己的理解做一些内容调整,原文链接贴在这里点此跳转。话不多说直接进入正题。Tensorstensor直译就是张量,可以理解为向量vector的延申。tensors是一种特殊的数据结构与数组和矩阵十分相似。在Pytorch中我们使用tensors去编码一个模型的输入输
2021-10-03 20:25:16
1076
原创 机器学习中常见的几种距离
欧几里得距离(Euclidean Distance)首先是欧几里得距离,也就是欧式距离,二范数,是从中学就学过的距离公式。二维平面上的两个点A(x1,y1)和B(x2,y2),它们之间的欧氏距离是曼哈顿距离(Manhattan Distance)曼哈顿距离就是纵向距离和横向距离之和,一范数.二维平面上的曼哈顿距离A(x1,y1)和B(x2,y2)的距离为。两个n维向量a(x1,x2,x3,...xn),b(y1,y2,y3,....yn)之间的曼哈顿距离是切比雪夫距离(Chebyshe.
2021-10-03 18:01:31
642
原创 二叉树的最近公共祖先节点
“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)”。给出两个节点找到二叉树的公共节点,下图中而可以发现,给出节点5,1,最近公共节点是3。直接给出代码。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *r.
2021-09-19 10:21:41
341
原创 二叉搜索树和累加树
二叉搜索树包含以下约束条件:节点的左子树仅包含键小于节点键的节点。 节点的右子树仅包含键大于节点键的节点。 左右子树也必须是二叉搜索树。可以知道使用中序遍历可以快速的输出从小到大的有序序列。累加树是使得每个节点的值是原来的节点值加上所有大于它的节点值之和。二者的关系就是中序遍历二叉搜索树然后从最后一个数字开始往前遍历累加,即可得出结论。如果用代码实现可以使用中序遍历先访问右节点,再访问左节点即可达到从大到小访问,依次累加即可。 int sum = 0; Tr...
2021-09-12 10:24:08
1339
原创 数组中的第K个最大元素和第k个最小元素
这里我们选择第k个最大元素来做实例。第一反应是这个题目似乎很简单,直接遍历,每一次挑最大的元素放入数组,最后就可以得到我们想要的结果,但是这个时间复杂度太高, O(K * n)。当 K 是比较小的常量时,时间复杂度是 O(n);但当 K 等于 n/2 或者 n 时时间复杂度就是 O(n^2) 了。我们需要用到在快排中的划分区间的方法。我们选择数组区间 A[0...n-1]的最后一个元素 A[n-1]作为 pivot,对数组 A[0...n-1]原地分区,这样数组就分成了三部分,A[0...p-1]、A[
2021-08-25 09:58:47
308
原创 罗马数字转整数和整数转罗马数字
先说说整数转罗马数字,直接看一看力扣上的题目吧。罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做X...
2021-05-15 10:47:37
240
原创 计算机中的异或运算
简单说一下计算机的异或运算,在计算机中,我们直接拿c语言举例子吧。比如1^3,应该如何计算,以四位二进制数为例,那就是0001和0011异或运算,可以知道结果应该是0010,也就是2;好了这就是异或运算的基本运算方式了。做一个简单的运算我们定义a^b=c,那么可以知道a^b^b=a,则c^b=a;同理c^a=b。利用这个一个思路我们可以用异或操作进行交换。 a = a ^ b; b = a ^ b; a = a ^ b;是不是很简单呢。下面做一个简单的应用。未知 整数...
2021-05-06 10:34:52
3687
原创 整数反转(经常见到的反转类型题目)
正数反转类型的题目,不管是在竞赛中还是在日常写代码的过程中都经常会遇到,虽然不是很难,但是写起来也会有一点磕绊,尤其是还有正数和负数的区别,不过总体上还是很简单的,下面给一个相关的模板。 int reverse(int x) { long num=0; while(x!=0) { num = num*10 + x%10; x /= 10; } //这里可以不用直接删去即可,检测
2021-05-03 12:11:29
195
原创 力扣(LeetCode)137. 只出现一次的数字 II
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,99]输出:99提示:1 <= nums.length <= 3 * 104-231 <= nums[i] <= 231 - 1nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次来源:力扣(LeetCode)
2021-04-30 10:13:38
352
原创 力扣(LeetCode)938.二叉搜索树的范围和
给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。示例 1:输入:root = [10,5,15,3,7,null,18], low = 7, high = 15输出:32示例 2:输入:root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10输出:23提示:树中节点数目在范围 [1, 2 * 104] 内1 <= Node.val <= 1051 <= low <
2021-04-27 11:36:10
100
原创 力扣(LeetCode)783. 二叉搜索树节点最小距离
给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。示例 1:输入:root = [4,2,6,1,3]输出:1示例 2:输入:root = [1,0,48,null,null,12,49]输出:1提示:树中节点数目在范围 [2, 100] 内0 <= Node.val <= 105来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-distance-between-
2021-04-13 19:42:26
254
原创 力扣(LeetCode)员工的重要性
给定一个保存员工信息的数据结构,它包含了员工 唯一的 id ,重要度和 直系下属的 id 。比如,员工 1 是员工 2 的领导,员工 2 是员工 3 的领导。他们相应的重要度为 15 , 10 , 5 。那么员工 1 的数据结构是 [1, 15, [2]] ,员工 2的 数据结构是 [2, 10, [3]] ,员工 3 的数据结构是 [3, 5, []] 。注意虽然员工 3 也是员工 1 的一个下属,但是由于 并不是直系 下属,因此没有体现在员工 1 的数据结构中。现在输入一个公司的所有员工信息,.
2021-04-07 16:42:08
295
原创 计算机网络核心知识点--短时间复试考试必备(持续更新中)
这一部分我们以大纲时的角度将内容进行整体性的梳理,后面将持续更新后面的每一层的细节。计算机网络的概念计算机网络是一些互联的、自治的计算机系统集合。计算机网络的功能主要包含五大功能:数据通讯、资源共享、分布式处理、提高可靠性、负载均衡计算机网络分类1.按照传输介质分类:有线网和无线网2.按照报文技术分类:电路交换网络、报文传输网络、分组交换网络3.按照范围分类:广域网、城域网、局域网4.按照拓扑结构分类:星型、总线型、环型、网状型结构5.按照使用者分类:公用网和专用网计算机网络的性能衡量
2021-04-02 16:42:24
705
原创 力扣(LeetCode)257. 二叉树的所有路径
给定一个二叉树,返回所有从根节点到叶子节点的路径。说明:叶子节点是指没有子节点的节点。示例:输入: 1/ \2 3\ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3通过次数104,338提交次数156,113来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-paths...
2021-03-30 15:52:11
443
原创 力扣(LeetCode)面试题 04.04. 检查平衡性
实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。示例 1:给定二叉树 [3,9,20,null,null,15,7]3/ 9 20/ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4]1/ 2 2/ 3 3/ 4 4返回 false 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ch
2021-03-28 16:31:20
145
原创 强化学习(reforcement learning)之Deep Q-network(DQN)算法简介
Deep Q-network(DQN)是一项实用度很高的强化学习算法,柘林进行一个简介,后期还会持续更新。首先初始化,我们初始化2个网络:Q 和Q^,其实Q^就等于Q。一开始Q^这个目标 Q 网络,跟我们原来的Q网络是一样的。在每一个episode(回合),我们用actor(演员)去跟环境做交互,在每一次交互过程中,我们都会得到一个状态st,那我们会采取某一个动作at。怎么知道采取哪一个动作at呢?我们就根据我们现在的 Q-function。但是我们要有探索的机制。比如说我们用 B...
2021-03-26 16:43:01
980
转载 计算机网络核心知识总结
阅读目录1. 网络层次划分 2. OSI七层网络模型 3. IP地址 4. 子网掩码及网络划分 5. ARP/RARP协议 6. 路由选择协议 7. TCP/IP协议 8. UDP协议 9. DNS协议 10. NAT协议 11. DHCP协议 12. HTTP协议 13. 一个举例 计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在
2021-02-18 10:00:40
1263
转载 动态规划系列问题—从小白到大佬的入门、进阶之旅
前言本篇文章写了将近一万五千字,整理了关于动态规划系列问题的绝大部分分支,包括动态规划的介绍,相关术语等基础内容,也有区间DP,状压DP等进阶知识。不管你是刚学习该算法的小白,还是对该算法有了一定了解的人,这篇文章你都可以仔细认真的耐心来学。对于小白来说,这是一个了解该算法并可以从小白蜕变成大佬的绝佳场地,能够帮助你在动态规划问题上变得游刃有余。千里之行,始于足下,学习的事不是一蹴而就的,希望你们能从这篇文章中有所收获!文章目录 前言 一.什么是动态规划 二.动态规划术语
2021-02-14 11:41:59
218
转载 机器学习的基本概念和相关术语介绍
文章目录 一.什么是机器学习 二.机器学习的相关术语 三.机器学习的典型任务 四.假设与假设空间 五.假设的选择原则 六.机器学习的三要素 推荐文章 一.什么是机器学习人工智能标准化白皮书(2018版)机器学习(Machine Learning)是一门涉及统计学、系统辨识、逼近理论、神经网络、优化理论、计算机科学、脑科学等诸多领域的交叉学科,研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,是人工智能技.
2021-02-14 11:38:04
397
原创 637. 二叉树的层平均值
给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。示例 1:输入: 3 / \ 9 20 / \ 15 7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。提示:节点值的范围在32位有符号整数范围内。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/average-of-...
2021-02-14 11:30:19
79
原创 剑指 Offer 28. 对称的二叉树
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:root = [1,2,2,null,3,null,3]输出:false
2021-02-13 16:00:46
161
原创 力扣(LeetCode)107. 二叉树的层序遍历 II
给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其自底向上的层序遍历为:[[15,7],[9,20],[3]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii著作权归领扣网络所有。商业转载
2021-02-06 11:41:15
193
原创 力扣(LeetCode)102. 二叉树的层序遍历
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层序遍历结果:[ [3], [9,20], [15,7]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal著作...
2021-02-05 16:22:03
97
原创 671. 二叉树中第二小的节点
给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为2或0。如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个。更正式地说,root.val = min(root.left.val, root.right.val) 总成立。给出这样的一个二叉树,你需要输出所有节点中的第二小的值。如果第二小的值不存在的话,输出 -1 。示例 1:输入:root = [2,2,5,null,null,5,7]输出:5解释:最小的值是 2 ,第二小的值是 5 ...
2021-02-03 11:44:42
172
原创 543. 二叉树的直径
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回3, 它的长度是路径 [4,2,1,3] 或者[5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。来源:力扣(LeetCode)链接:https://leetco...
2021-02-01 13:49:04
65
原创 力扣(LeetCode)965. 单值二叉树
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回true;否则返回 false。示例 1:输入:[1,1,1,1,1,null,1]输出:true示例 2:输入:[2,2,2,5,2]输出:false提示:给定树的节点数范围是[1, 100]。每个节点的值都是整数,范围为[0, 99]。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/univalued...
2021-01-31 11:14:27
155
原创 617. 合并二叉树
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL 的节点将直接作为新二叉树的节点。示例1:输入: Tree 1 Tree 2 1 2 ...
2021-01-30 15:26:31
95
原创 力扣(LeetCode)100. 相同的树
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1 / \ 2 2...
2021-01-29 13:07:41
100
原创 二叉树的最大深度和最小深度
二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree著作权归领扣...
2021-01-28 13:14:41
1457
原创 力扣(LeetCode)404. 左叶子之和
计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24通过次数67,721提交次数119,863来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sum-of-left-leaves著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。分析:一个简单的题目,只需要判断当前节点是不...
2021-01-28 13:09:13
92
原创 剑指 Offer 55 - I. 二叉树的深度
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-shu-de-shen-du-lcof著作权归领扣网络所有。商业转载请联系官方...
2021-01-25 17:01:19
64
原创 力扣(LeetCode)606. 根据二叉树创建字符串
你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入: 二叉树: [1,2,3,4] 1 / \ 2 3 / 4 输出: "1(2(4))(3)"解释: 原本将是“1(2(4)())(3())”,在你省略所有不必要的空括号对之后,它将是“1(2(4))(3)”。示例 ...
2021-01-24 18:02:40
176
原创 力扣(LeetCode)112. 路径总和
给你二叉树的根节点root 和一个表示目标和的整数targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和targetSum 。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true示例 2:输入:root = [1,2,3], targetSum = 5输出:false示例 3:输入...
2021-01-23 22:08:11
151
原创 剑指 Offer 54. 二叉搜索树的第k大节点
给定一棵二叉搜索树,请找出其中第k大的节点。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \1 4 \ 2输出: 4示例 2:输入: root = [5,3,6,2,4,null,null,1], k = 3 5 / \ 3 6 / \ 2 4 /1输出: 4限制:1 ≤ k ≤ 二叉搜索树元素个数通过次数77,665提交次数104,50...
2021-01-22 20:50:39
73
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人