- 博客(67)
- 收藏
- 关注
原创 【贪心算法】跳跃游戏
给你一个非负整数数组 nums ,你最初位于数组的 第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回 true;否则,返回 false。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。
2024-05-16 11:07:31 200 1
原创 【神经网络与深度学习】Transformer原理
对拆分后的语句x = [batch_size, seq_len]进行以下操作PEposisinpos/100002idmodelPEposicospos/100002idmodeldmodel通过输入部分。
2024-05-15 20:57:09 1291 1
原创 【算法】组合回溯专题
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。为了去重,需使用idx来约束每轮的终点有了 4 3 2 后就不能出现 2 3 4。
2024-04-24 19:21:41 294
原创 【神经网络与深度学习】Long short-term memory网络(LSTM)
hidden_size: 每一层LSTM单元的数量num_layers: RNN中LSTM的层数batch_first: True对应[batch_size, seq_len, embedding_dim]bidiectional: True对应使用双向LSTM实例化LSTM对象后,不仅要传入数据,还有传入前一次的h_0和c_0LSTM默认输出(output, (h_n, c_n))
2024-04-15 22:59:35 365 1
原创 【神经网络与深度学习】文本情感分类
AclImdb – v1 Dataset 是用于二进制情绪分类的大型电影评论数据集,其涵盖比基准数据集更多的数据,其中有 25,000 条电影评论用于训练,25,000 条用于测试,还有其他未经标记的数据可供使用。
2024-04-15 18:47:25 744
原创 【数据结构】两两交换链表 && 复制带随机指针的链表
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
2024-04-11 10:44:57 454
原创 【数据结构与算法】二分图的最大匹配
给定一个二分图,其中左半部包含 n1 个点(编号 1∼n1),右半部包含 n2 个点(编号 1∼n2),二分图共包含 m 条边。数据保证任意一条边的两个端点都不可能在同一部分中。请你求出二分图的最大匹配数。二分图的匹配:给定一个二分图 G,在 G 的一个子图 M 中,M 的边集 {E} 中的任意两条边都不依附于同一个顶点,则称 M 是一个匹配。二分图的最大匹配:所有匹配中包含边数最多的一组匹配被称为二分图的最大匹配,其边数即为最大匹配数。输入格式第一行包含三个整数 n1、 n2 和 m。
2024-03-28 21:27:34 345
原创 【每日一题】盛水容器
给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。
2024-03-28 20:26:23 188
原创 【数据结构与算法】用染色法判定二分图
给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。输入格式第一行包含两个整数 n 和 m。接下来 m 行,每行包含两个整数 u 和 v,表示点 u 和点 v 之间存在一条边。输出格式如果给定图是二分图,则输出 Yes,否则输出 No。
2024-03-26 21:48:47 229
原创 【概率论与数理统计】Chapter2 随机变量及其分布
随机变量取值为离散的(有限或者可列)Fx∫−∞xfuduFx∫−∞xfuduF(x)为连续函数fxf(x)fx为XXXfx≥0fx≥0∫−∞∞fxdx1∫−∞∞fxdx1Px1X≤x2Fx2−x1Px1X≤x2Fx2−x1若fxf(x)fx在xxx点连续,F′xfxF′xfx注PXa0。
2024-03-25 19:55:17 1233
原创 【数据结构与算法】spfa判断是否存在负环
给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你判断图中是否存在负权回路。输入格式第一行包含整数 n 和 m。接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。输出格式如果图中存在负权回路,则输出 Yes,否则输出 No。数据范围1≤n≤2000,1≤m≤10000,图中涉及边长绝对值均不超过 10000。
2024-03-20 16:44:34 188
原创 【数据结构与算法】求带负权值的最短路径——spfa方法
给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 impossible。数据保证不存在负权回路。输入格式第一行包含整数 n 和 m。接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。输出格式输出一个整数,表示 1 号点到 n 号点的最短距离。如果路径不存在,则输出 impossible。
2024-03-20 16:11:04 468
原创 【Dijkstra算法】求图的最短路
给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。输入格式第一行包含整数 n 和 m。接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。输出格式输出一个整数,表示 1 号点到 n 号点的最短距离。如果路径不存在,则输出 −1。
2024-03-18 20:49:50 320
原创 【拓扑排序】有向图的拓扑排序
给定一个 n 个点 m 条边的有向图,点的编号是 1 到 n,图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出 −1。若一个由图中所有点构成的序列 A 满足:对于图中的每条边 (x,y),x 在 A 中都出现在 y 之前,则称 A 是该图的一个拓扑序列。输入格式第一行包含两个整数 n 和 m接下来 m 行,每行包含两个整数 x 和 y,表示存在一条从点 x 到点 y 的有向边 (x,y)。输出格式。
2024-03-18 20:06:00 501
原创 【BFS】计算图中点的层次
给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环。所有边的长度都是 1,点的编号为 1∼n。请你求出 1 号点到 n 号点的最短距离,如果从 1 号点无法走到 n 号点,输出 −1。输入格式第一行包含两个整数 n 和 m。接下来 m 行,每行包含两个整数 a 和 b,表示存在一条从 a 走到 b 的长度为 1 的边。输出格式输出一个整数,表示 1 号点到 n 号点的最短距离。
2024-03-18 19:36:04 247
原创 【推荐系统】NCF神经协同过滤
NCF框架是本文要实现的3个模型的主体结构。首先是输入层,分别包含两个特征向量vu和vi,描述了用户u和物品i。输入仅由一个用户向量和一个物品向量构成,它们分别是以one-hot编码的二值化稀疏向量。接着是Embedding层,这是一个全连接层,用于将输入层的系数向量表示成一个稠密向量。接着用户和物品的embedding向量被送入多层神经网络架结构中,这一层叫做神经协同过滤层(Neural CF Layer),它用于将潜在特征向量映射成预测分数(Score)。
2024-03-17 21:21:46 1908
原创 【深度学习与神经网络】MNIST手写数字识别1
标签是(64) ,需要将其转为one-hot编码(64,10)一层全连接网络,最后使用softmax转概率值输出。使用均方误差损失函数,梯度下降优化。训练时注意最后输出(64,10)读入数据并转为tensor向量。调用模型 训练10次。
2024-03-16 20:04:44 460
原创 【BFS】走迷宫问题——acwing844
给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。输入格式第一行包含两个整数 n 和 m。接下来 n 行,每行包含 m 个整数(0 或 1),表示完整的二维数组迷宫。
2024-03-16 17:03:18 311
原创 【DFS算法】排列数字——acwing 842
给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入格式共一行,包含一个整数 n。输出格式按字典序输出所有排列方案,每个方案占一行。数据范围1≤n≤7。
2024-03-15 21:07:41 412
原创 【推荐系统】基于物品的协同过滤算法
基于物品的协同过滤算法的核心思想就是:给用户推荐那些和他们之前喜欢的物品相似的物品。ItemCF算法并不是直接根据物品本身的属性来计算相似度,而是通过。如何计算商品之间的相似度?我们想知道当购买商品a时,如果有很多用户购买了商品b,那是不是可以就此认为商品a与b是相似的呢?(比如说甲新购买了手机,乙买了手机还买了手机壳,我们是否可以推荐手机壳给用户甲呢?先写出每个用户的共现矩阵C如 用户A:C[i][j]代表的含义是同时喜欢物品i和物品j的用户数量。易知这是一个对称矩阵。
2024-03-15 16:36:09 1704
原创 【算法】字符串哈希
给定一个长度为 n 的字符串,再给定 m个询问,每个询问包含四个整数 l1,r1,l2,r2,请你判断 [l1,r1] 和 [l2,r2] 这两个区间所包含的字符串子串是否完全相同。字符串中只包含大小写英文字母和数字。输入格式第一行包含整数 n 和 m,表示字符串长度和询问次数。第二行包含一个长度为 n 的字符串,字符串中只包含大小写英文字母和数字。接下来 m 行,每行包含四个整数 l1,r1,l2,r2,表示一次询问所涉及的两个区间。注意,字符串的位置从 1 开始编号。输出格式。
2024-03-11 20:57:23 324
原创 【算法】Hash存储——开放寻址法
维护一个集合,支持如下几种操作:I x,插入一个整数 x;Q x,询问整数 x是否在集合中出现过;现在要进行 N次操作,对于每个询问操作输出对应的结果。输入格式第一行包含整数 N,表示操作数量。接下来 N行,每行包含一个操作指令,操作指令为 I x,Q x 中的一种。输出格式对于每个询问指令 Q x,输出一个询问结果,如果 x 在集合中出现过,则输出 Yes,否则输出 No。每个结果占一行。
2024-03-11 19:54:43 348
原创 【算法】并查集
用于查找一个数字的祖宗数字比如 初始时,每个数字的祖宗是自己 find(i) = i若 要把 3 和 4 合并 则把3的祖宗设置为4 此时 p(find(3)) = 4若 要把 5 和 3 合并, 则先找到5和3的祖宗, 再把5的祖宗设置为3的祖宗每次合并集合时只需要更改祖宗元素即可。
2024-03-09 21:14:28 307
原创 【前端开发】HTML1
HTML全称 Hypertext Markup Language (超文本标记语言)通过一系列的来定义文本、图像、链接等等。HTML标签是由尖括号包围的关键字。:拥有开始标签和结束标签,内容位于两者之间</</</:用于没有内容的元素。
2024-03-05 22:23:27 623
原创 【数据结构】20 树的应用(堆及其操作)
堆是一种优先队列,从堆中取出元素时按照元素的优先级大小,而不是元素进入队列的先后顺序。堆的最常用结构是二叉树,一般为完全二叉树。通常使用数组来实现堆的存储。:任一结点的值大于或等于其子节点的值。这一性质决定了根节点元素的值在整个堆里是最大的。:任一结点的值小于或等于其子节点的值。这一性质决定了根节点元素的值在整个堆里是最小的。需要注意的是,兄弟节点之间没有什么约束关系,比如 可能会出现左子树个节点的值都大于右子树的所有结点。
2024-03-04 20:25:54 422
原创 【每日一题】3.4 合并区间
给定 n个区间 [li,ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3]和 [2,6]可以合并为一个区间 [1,6]。输入格式第一行包含整数 n。接下来 n行,每行包含两个整数 l和 r。输出格式共一行,包含一个整数,表示合并区间完成后的区间个数。
2024-03-04 18:28:45 246
原创 【acwing】前缀与差分
输入一个长度为 n的整数序列。接下来再输入 m个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。输入格式第一行包含两个整数 n和 m。第二行包含 n个整数,表示整数数列。接下来 m行,每行包含两个整数 l和 r,表示一个询问的区间范围。输出格式共 m行,每行输出一个询问的结果。
2024-03-04 17:04:44 256
原创 【数据结构与算法】浮点数二分
给定一个浮点数 n,求它的三次方根。输入格式共一行,包含一个浮点数 n。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留 6位小数。数据范围输入样例:1000.00输出样例:10.000000。
2024-03-03 16:56:25 164
原创 【每日一题】3.2 求逆序对
给定一个长度为 n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i个和第 j个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。输入格式第一行包含整数 n,表示数列的长度。第二行包含 n个整数,表示整个数列。输出格式输出一个整数,表示逆序对的个数。数据范围 1≤n≤100000,数列中的元素的取值范围 [1,109]。输入样例:6输出样例:5。
2024-03-02 20:17:19 252
原创 【数据结构】19 平衡二叉树
对于二叉树的任一结点T,其平衡因子(BF)定义为BF(T)=hL−hRhL和hR分别是T的左、右子树的高度。故AVL树的平衡因子只能在{-1,0,1}中取值。
2024-03-02 17:00:58 841
原创 【数据结构】归并排序
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。
2024-03-01 21:24:07 413
原创 【排序算法】快速排序
采用“分治”的思想,对于一组数据,选择一个基准元素(base),通常选择第一个或最后一个元素。通过第一轮扫描,比base小的元素都在base左边,比base大的元素都在base右边。再有同样的方法递归排序这两部分,直到序列中所有数据均有序为止。
2024-02-29 22:15:34 362
原创 【每日一题】2.28 由前序遍历和中序遍历确定后序遍历
假定一棵二叉树的每个结点都用一个大写字母描述。给定这棵二叉树的前序遍历和中序遍历,求其后序遍历。输入格式输入包含多组测试数据。每组数据占两行,每行包含一个大写字母构成的字符串,第一行表示二叉树的前序遍历,第二行表示二叉树的中序遍历。输出格式每组数据输出一行,一个字符串,表示二叉树的后序遍历。数据范围输入字符串的长度均不超过 26输入样例:ABCBACFDXEAGXDEFAG输出样例:BCAXEDGAF。
2024-02-28 20:19:04 244
原创 【每日一题】2.27 验证二叉搜索树
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。
2024-02-27 21:04:47 208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人