自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 资源 (1)
  • 收藏
  • 关注

原创 Distributed Representations of Sentences and Documents(Doc2Vec简摘)

Distributed Representations of Sentences and Documents(Doc2Vec简摘)介绍AlgorithmsParagraph Vector: A distributed memory model优点Many machine learning algorithms require the input to be represented as a fixed-length feature vector. When it comes to texts, one o

2021-02-04 18:48:07 294

原创 Deep Unordered Composition Rivals Syntactic Methods for Text Classification(简摘DAN模型)

Deep Unordered Composition Rivals Syntactic Methods for Text Classification(简摘)摘要成果结论摘要Many existing deep learning models for natural language processing tasks focus on learning the compositionality of their inputs, which requires many expensive computat

2021-02-02 11:25:40 562

原创 深度学习文本分类文献综述(翻译自Deep Learning Based Text Classification: A Comprehensive Review)

深度学习文本分类文献综述摘要介绍1. 文本分类任务2.文本分类中的深度模型2.1 Feed-Forward Neural Networks2.2 RNN-Based Models2.3 CNN-Based Models2.4 Capsule Neural Networks2.5 Models with Attention Mechanism2.6 Memory-Augmented Networks2.7 Transformers2.8 Graph Neural Networks2.9 Siamese Neu

2021-02-01 19:16:02 4229

原创 Leetcode 每日一题——649. Dota2 参议院

649. Dota2 参议院Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇)Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。宣布胜利:如果参议员发现有权利投票的参议员都是同一个阵营的,他可以宣布胜利并决定在游戏中的有关变化。给定一个字符串代表每个参议

2020-12-11 10:28:56 175

原创 Leetcode 每日一题——860. 柠檬水找零

860. 柠檬水找零在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。该题由于要找零的范围很小,所以用if判断就可以解决了,具体代码如下(C++版):class Solution {p

2020-12-10 09:19:27 188

原创 Leetcode 每日一题——62. 不同路径

62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?该题是比较经典的动态规划题,下面是C++的代码:class Solution {public: int uniquePaths(int m, int n) { vector<vector<int>> DP(m,vector

2020-12-09 09:08:52 125 1

原创 Leetcode 每日一题——861. 翻转矩阵后的得分

Leetcode 每日一题——861. 翻转矩阵后的得分有一个二维矩阵 A 其中每个元素的值为 0 或 1 。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。该题目的算法思路是先保证首节点都是1的情况下每列有尽可能多的1,具体代码如下(C++版):class Solution {public: int matrixSc

2020-12-07 09:35:44 94

原创 Leetcode 每日一题——118. 杨辉三角

118. 杨辉三角给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。该题直接模拟求解就可以,下面是C++的实现:class Solution {public: vector<vector<int>> generate(int numRows) { if(numRows==0) return {}; if(numRows==1) return {{1}};

2020-12-06 10:45:59 86

原创 Leetcode 每日一题——621. 任务调度器

621. 任务调度器给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。该题可以使用排序的方法进行模拟,具体代码如下(C++版):

2020-12-05 10:56:16 135

原创 Scala隐式转换说明和使用

Scala隐式转换说明和使用对于大部分编程语言而言,变量的隐式转换是编程语言所自带的,但是在Scala中提供了一种可以自定义隐式转换的方法。隐式转换函数隐式转换函数需要具备三个条件:确定的返回值和返回值类型;确定的函数参数和函数参数类型;用implicit进行修饰。具体实例如下:object ImplicitOps1 { def main(args: Array[String]): Unit = { var numInt:Int=5 val numFloat:Floa

2020-12-04 18:29:42 145

原创 Leetcode 每日一题——659. 分割数组为连续子序列

659. 分割数组为连续子序列给你一个按升序排序的整数数组 num(可能包含重复数字),请你将它们分割成一个或多个子序列,其中每个子序列都由连续整数组成且长度至少为 3 。如果可以完成上述分割,则返回 true ;否则,返回 false 。下面是C++代码实现(官方答案搬运版):class Solution {public: bool isPossible(vector<int>& nums) { unordered_map<int,int&gt

2020-12-04 17:12:37 130

原创 Leetcode 每日一题——204. 计数质数

204. 计数质数统计所有小于非负整数 n 的质数的数量。质数统计虽然是个简单的题目,但是如果不了解数学的意义还是有点难处理的,下面是枚举法的C++代码:class Solution {public: int countPrimes(int n) { int res=0; for(int i=2; i<n; i++) { res+=isPrime(i); } return res;

2020-12-03 09:27:17 101

原创 Scala泛型编程说明和使用

Scala泛型编程说明和使用泛型用于指定方法或类可以接受任意类型参数,参数在实际使用时才被确定,泛型可以有效 地增强程序的适用性,使用泛型可以使得类或方法具有更强的通用性。泛型的典型应用场景 是集合及集合中的方法参数。泛型类和泛型方法泛型类实例如下:object GenreicTypeOps { def main(args: Array[String]): Unit = { val product=new ProductDao() val item=new Product(123

2020-12-02 14:46:37 135

原创 Leetcode 每日一题——321. 拼接最大数

321. 拼接最大数给定长度分别为 m 和 n 的两个数组,其元素由 0-9 构成,表示两个自然数各位上的数字。现在从这两个数组中选出 k (k <= m + n) 个数字拼接成一个新的数,要求从同一个数组中取出的数字保持其在原数组中的相对顺序。求满足该条件的最大数。结果返回一个表示该最大数的长度为 k 的数组。说明: 请尽可能地优化你算法的时间和空间复杂度。这道题目没咋搞出来,参考了个大佬的(链接在下面),具体代码如下(Python版):class Solution: def m

2020-12-02 14:09:58 207

原创 Scala闭包(柯里化)说明和使用

Scala闭包(柯里化)说明和使用闭包Scala的闭包可以和python的闭包联合起来理解,就是在一个函数中定义了另外一个函数,内部的函数作为外部函数的返回值,此外内部的函数可以使用外部函数的变量(个人理解)。下面是个闭包的简单实例:object ClosureFunctionOps { def main(args: Array[String]): Unit = { println(closureFunction(5)(5)) println(closureFunction(6)

2020-12-01 14:10:14 405

原创 Leetcode 每日一题——34. 在排序数组中查找元素的第一个和最后一个位置

34. 在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?该题使用双指针可以比较轻松地解决,但是要保证时间复杂度为*o(logN)*那就要用二分查找了。两边二分查找的代码如下(C++版):class Solution {public: vecto

2020-12-01 09:45:19 157 1

原创 Scala常见高阶函数说明和使用

Scala常见高阶函数说明和使用filter 过滤函数fliter函数的特点:filter函数遍历整个集合;filter函数允许你提供一个判断条件(函数),来过滤集合元素;为filter函数并不会对原集合做改变,而是返回一个新的集合。语法结构如下:集合名.filter(参数名=>Boolean)//filter括号内的是一个返回值为Boolean类型的匿名函数具体实例:object FilterOps { def main(args: Array[String]): Uni

2020-11-30 15:53:15 220

原创 Leetcode 每日一题——767. 重构字符串

767. 重构字符串给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。若可行,输出任意可行的结果。若不可行,返回空字符串。该题的算法是优先队列加贪心(优先队列的API真的记不住),下面是C++的代码:class Solution {public: string reorganizeString(string S) { if(S.length()<2) return S; string result=""; vect

2020-11-30 09:47:16 142

原创 Scala高阶函数说明和使用

Scala高阶函数说明和使用函数在Scala中是“头等公民”,它的使用方法和任何其他变量是一样的。所谓高阶函数(Higher-Order Function)就是操作其他函数的函数。Scala 中允许使用高阶函数, 高阶函数可以使用其他函数作为参数,或者使用函数作为输出结果。函数作为值被传递和赋值Scala中可以将函数赋值给var、val、def定义的变量,代码实例如下:object HigherOrderFunctionOps1 { def main(args: Array[String]):

2020-11-29 16:40:12 249

原创 面试常考排序算法汇总(Python版)

面试常考排序算法汇总(Python版)快速排序def qiuckSort(nums,left,right): if left >= right: return randomNum=nums[right] print(randomNum) i,j=left,right while(i<j): while i<j and nums[i]<randomNum: i+=1 nums[j]=nu

2020-11-29 12:51:45 248 1

原创 Leetcode 每日一题——976. 三角形的最大周长

976. 三角形的最大周长给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。该题使用排序函数加贪心处理还是比较方便的(前提是不用手推排序算法)。class Solution {public: int largestPerimeter(vector<int>& A) { if(A.size()<3) return 0; sort(A.begi

2020-11-29 10:22:30 124

原创 Scala模式匹配说明和使用

Scala模式匹配说明和使用在Scala中没有swich case 的语法结构,取而代之的是match case的语法,在Scala中被称为模式匹配,相较于switch的分支结构,match的功能就要强大许多了。它不仅可以匹配整形和字符还能匹配类相关的复杂数据结构。匹配数值、字符以及字符串object MatchOpsValue{ def main(args: Array[String]): Unit = { matchTest(1) matchTest("two") ma

2020-11-28 17:13:38 201

原创 Scala样例类说明和使用

Scala样例类的说明和使用Scala中的样例类是使用case关键字修饰的类,这是一种经过优化以用于模式匹配的类。样例类的定义语法:case class 类名(类参数)下面是个简单的例子:object CassClassOps { def main(args: Array[String]): Unit = { var child:Person = Person("张三",5) var yongman:Person = Person("李四",25) var oldman

2020-11-28 15:53:56 588

原创 Leetcode 每日一题——493. 翻转对

493. 翻转对给定一个数组 nums ,如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。你需要返回给定数组中的重要翻转对的数量。该题类似于逆序对个数的查找,使用归并排序进行求解,具体代码如下:class Solution {public: int reversePairsRecursive(vector<int>& nums,int left, int right) { i

2020-11-28 11:54:31 167

原创 Scala版 LeetCode练习

Scala版 LeetCode练习(简单版)1480. 一维数组的动态和object Solution { def runningSum(nums: Array[Int]): Array[Int] = { for (i<- 1 to nums.size - 1) { nums(i)=nums(i-1)+nums(i) } return nums }}1512. 好数对的数

2020-11-27 17:41:16 229

原创 Leetcode 每日一题——454. 四数相加 II

454. 四数相加 II给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。最开始我的思路是将最后一个数组的数值存到hash表中,但其实将两组数组的和存入hash map中效率是最高的,具体代码如下(C++版):class Solution {public: int four

2020-11-27 09:04:21 182

原创 Leetcode 每日一题——164. 最大间距

164. 最大间距给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。该题目最麻烦的是要在线性复杂度下解决问题,所以可以使用基数排序的方法(虽然评论区都说效果一般),下面是Python的实现代码:class Solution: def maximumGap(self, nums: List[int]) -> int: if len(nums) < 2: return 0 maxN

2020-11-26 10:07:44 294

原创 Leetcode 每日一题——1370. 上升下降字符串

1370. 上升下降字符串给你一个字符串 s ,请你根据下面的算法重新构造字符串:从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。重复步骤 2 ,直到你没法从 s 中选择字符。从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。重复步骤 5 ,直到你没法从 s 中选择字符。重复步骤

2020-11-25 08:42:41 102

原创 Leetcode 每日一题——222. 完全二叉树的节点个数

222. 完全二叉树的节点个数给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。今天算是学了一个知识点,用二进制的方式表示完全二叉树的索引,利用这个性质可以查找某索引是不是完全二叉树的根节点索引,Python代码如下(参考官方解法):# Definition for a binary tree node.# class TreeNode:# de

2020-11-24 09:41:05 111 1

原创 Leetcode 每日一题——452. 用最少数量的箭引爆气球

452. 用最少数量的箭引爆气球在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到

2020-11-23 09:11:40 113

原创 Leetcode 每日一题——242. 有效的字母异位词

242. 有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。这道题目比较简单,直接使用hash map就可以比较轻松地求解了,具体代码如下(Python版):class Solution: def isAnagram(self, s: str, t: str) -> bool: if len(s)!=len(t):return False chMap=[0 for _ in range(26)]

2020-11-22 19:39:53 83

原创 Leetcode 每日一题——148. 排序链表

148. 排序链表给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。进阶:在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序该题可以使用归并排序的算法,具体代码如下(C++版):/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(null

2020-11-21 11:06:56 145

原创 Leetcode 每日一题——147. 对链表进行插入排序

147. 对链表进行插入排序对链表进行插入排序。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。链表的题目只要细心一点还是能解决的,记住在插入的时候要使用两个指针,一个指在当前节点,一个指在上一个节点就可以了,具体的代码实现如下(C++版):/** * Definition for singly-linked list

2020-11-20 09:12:15 131

原创 Leetcode 每日一题——283. 移动零

283. 移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。该题使用双指针就可以轻松求解了,具体代码如下(C++版):class Solution {public: void moveZeroes(vector<int>& nums) { if(! nums.size()) return; int left=0; int right=0; while(rig

2020-11-19 09:08:01 167

原创 Leetcode 每日一题——134. 加油站

134. 加油站在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。**说明: **如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。该题的解题思路是筛选去除不可能是起点的加油站,C++代码如下:cla

2020-11-18 09:02:08 177

原创 Leetcode 每日一题——1030. 距离顺序排列矩阵单元格

1030. 距离顺序排列矩阵单元格给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两单元格(r1, c1) 和 (r2, c2) 之间的距离是曼哈顿距离,|r1 - r2| + |c1 - c2|。(你可以按任何满足此条件的顺序返回答案。)这道题用

2020-11-17 09:28:40 85

原创 Leetcode 每日一题——406. 根据身高重建队列

406. 根据身高重建队列假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。该题需要使用贪心算法进行求解(虽然我一直没搞懂贪心在哪里),首先就是要对列表进行排序,然后一个个插入结果列表,C++的实现代码如下(用的list数据结构方便插入):class Solution {public: vector<vector<int>

2020-11-16 08:53:38 99

原创 Leetcode 每日一题——402. 移掉K位数字

402. 移掉K位数字给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。可以看出来这道题是要使用栈的数据结构处理的,但是感觉还是没怎么写好,C++的代码如下(感觉写得很啰嗦):class Solution {public: string removeKdigits(string num, int k) { vector<int> IntN

2020-11-15 12:08:56 121

原创 Leetcode 每日一题——1122. 数组的相对排序

1122. 数组的相对排序给你两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。可以使用字典数据结构储存arr1中的重复数字,然后根据arr2的顺序将数字填充进结果数组中,具体代码如下(Python版):class Solution: def relativeSortArr

2020-11-14 11:04:45 240

原创 Leetcode 每日一题——328. 奇偶链表

328. 奇偶链表给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。链表操作还是相对简单的,就是插入、删除以及交换节点这些操作的组合,用双指针思路实现的代码如下(Python版):# Definition for singly-linked list.# class ListNode:#

2020-11-13 10:14:58 183

text-classification论文.zip

150篇相关论文

2021-02-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除