自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 伪标签(Pseudo-Labelling)

大数据时代中,在推荐、广告领域样本的获取从来都不是问题,似乎适用于小样本学习的伪标签技术渐渐淡出了人们的视野,但实际上在样本及其珍贵的金融、医疗图像、安全等领域,伪标签学习是一把锋利的匕首,简单而有效。伪标签的定义伪标签的定义来自于半监督学习,半监督学习的核心思想是通过借助无标签的数据来提升有监督过程中的模型性能。举个简单的半监督学习例子,我想去训练一个通过胸片图像来诊断是否患有乳腺癌的模型,但是专家标注一张胸片图像要收费,于是我掏空自己的钱包让专家帮我标注了10张胸片,可是我这10张图片又要划分.

2020-11-29 21:51:35 12228 7

原创 LeetCode_976_三角形的最大周长

题目链接https://leetcode-cn.com/problems/largest-perimeter-triangle/解题思路假设a <= b <= c,我们知道三角形的三个边需要满足a + b > c贪心法,我们可以选择枚举最长边c,那么a,b一定是选小于c的最大的两个数,此时最有可能满足a + b > c且此时三角形的周长是最大的因此,首先对数组进行拍寻,倒序枚举第i个数最为最长边,然后判断A[i - 2] + A[i - 1] > A[i],如果

2020-11-29 11:28:55 180

原创 LeetCode_454_四数相加II

题目链接https://leetcode-cn.com/problems/4sum-ii/解题思路将数组分成两组,HashMap存一组,另一组和HashMap进行比对这种,可以分为三种情况0+4模式,时间复杂度为O(n^4)1+3模式,时间复杂度O(n) + O(n^3) = O(n^3)2 +2模式,时间复杂度O(n^2) + O(n^2) = O(n^2)显然我们选择2+2模式。以AB为一组,先使用二重循环遍历,并将所有的A[i] + B[j]的值和它的出现次数存入HashM

2020-11-27 17:40:18 155

原创 LeetCode_164_最大间距

题目链接https://leetcode-cn.com/problems/maximum-gap/解题思路年轻人不讲码德,面试官让你回去等消息题目要求是O(n),我的是快速排序O(nlogn)首先是直接调用java中的数组排序方法然后比较,找出相邻元素的最大差值AC代码class Solution { public int maximumGap(int[] nums) { int len = nums.length; if (l

2020-11-26 09:06:12 145

原创 LeetCode_1370_上升下降字符串

题目链接https://leetcode-cn.com/problems/increasing-decreasing-string/解题思路这道题的意思是从字符串s中先选出升序的字符,然后再选出降序的字符,这样一直循环,直到选择完全为止。因为s中只包含小写字母,所以可以申请一个大小为26的数组,相当于26个桶。按照字母顺序将s中的每个字符分别放入对应的桶中,比如a放到第一个桶里,z放到第26个桶里第一次从左往右遍历26个桶,从每个桶里拿出一个字符(如果没有就不用拿)第二次从右往左遍历26个

2020-11-25 19:47:43 112

原创 LeetCode_27_移除元素

题目链接https://leetcode-cn.com/problems/remove-element/解题思路双指针法创建指针ans,遍历的时候指针ans用来记录当前的非val元素。即遍历的时候每遇到一个非val元素就将其往数组左边挪动。AC代码class Solution { public int removeElement(int[] nums, int val) { int ans = 0; for (int i = 0; i < n

2020-11-19 13:09:00 174

原创 LeetCode_283_移动零

题目链接https://leetcode-cn.com/problems/move-zeroes/解题思路两次遍历创建两个指针i和j,第一次遍历的时候指针j用来记录当前的非0元素。即遍历的时候每遇到一个非0元素就将其往数组左边挪动。第一次遍历完后,j指针的下标就指向了最后一个非0元素的下标第二次遍历的时候,起始位置就从j开始到结束,将剩下的这个区间的元素全部置为0AC代码class Solution { public void moveZeroes(int[] nums) {

2020-11-19 08:31:17 126

原创 LeetCode_1030_距离顺序排列矩阵单元格

题目链接https://leetcode-cn.com/problems/matrix-cells-in-distance-order/解题思路暴力法首先存储矩阵内所有的点,然后将其按照哈曼顿距离直接排序AC代码class Solution { public int[][] allCellsDistOrder(int R, int C, int r0, int c0) { int index = 0; int[][] ans = new int[R

2020-11-17 19:53:06 149 2

原创 LeetCode_412_Fizz Buzz

题目链接https://leetcode-cn.com/problems/fizz-buzz/解题思路模拟法初始化一个列表ans对于每一个数,首先判断它能不能被3和5同时整除,如果可以就把FizzBuzz加入ans中如果不行,判断它能不能被3整除,如果可以就把Fizz加入ans中如果不行,判断它能不能被5整除,如果可以就把Buzz加入ans中如果以上都不行,就直接把这个数加入ans中AC代码class Solution { public List<String&gt

2020-11-17 19:33:41 123 2

原创 LeetCode_1122_数组的相对排序

题目链接https://leetcode-cn.com/problems/relative-sort-array/解题思路计数排序首先用一个数组tmp,记录arr1中每个元素的出现次数然后遍历数组arr2,当遍历到元素x时,就将tmp[x]个x加入到答案中,并将tmp[x] = 0.当遍历结束时,所有在arr2中出现过的元素就已经有序了此时还剩下没有在arr2中出现过的元素,因此我们还需要对整个数组tmp进行依次遍历当遍历到元素x时,如果tmp[x] != 0,我们就将tmp[x]个x

2020-11-14 13:11:17 176

原创 LeetCode_509_斐波那契数

题目链接https://leetcode-cn.com/problems/fibonacci-number/解题思路递归法DP动态规划母函数这里主要说一下母函数法,这是我最近在上组合数学时看到的方法。具体推导过程,请看下面的图片AC代码//母函数class Solution { public int fib(int N) { double goldenRatio = (1 + Math.sqrt(5)) / 2; return

2020-11-13 09:15:14 199

原创 LeetCode_328_奇偶链表

题目链接https://leetcode-cn.com/problems/odd-even-linked-list/解题思路首先将编号为奇数的结点都放在一起变成一个单链表然后将编号为偶数的结点都放在一起变成一个单链表最后将偶链表连接到奇链表之后即可维护两个指针odd和even分别指向奇数结点和偶数结点。初始时odd = head,even = head.next更新奇数结点时,奇数结点的后一个结点需要指向偶数结点的后一个结点,因此令odd.next = evev.next,然后令odd

2020-11-13 08:33:16 119

转载 自然语言处理--文本表示

自然语言处理–文本表示引言所谓文本表示既是通过某种形式将文本字符串表示成计算机所能处理的数值向量。那么为什么要进行文本表示,根本原因是计算机不能直接对文本字符串进行处理,因此需要进行数值化或者向量化。不仅传统的机器学习算法需要这个过程,深度学习也需要这个过程,只不过这个过程可能直接包含在了深度学习网络中;同时,良好的文本表示形式也可以极大的提升算法效果。表示方法分类文本表示一直以来都是自然语言处理研究领域中的一个热点问题,总体来讲主要分为二大类,One-hot Representation ,直

2020-11-12 16:42:17 1295

原创 WordNet的主要功能介绍

WordNet的主要功能介绍上位词/下位词hypernyms() # 上位(父类)hyponyms() # 下位(子类)同义词/反义词lemma_names() # 同义antonyms() # 反义蕴涵关系entailments()整体与部位part_meronyms() # 部分substance_meronyms() # 实质member_holonyms() # 成员计算概念之间距离path_similari

2020-11-12 16:22:53 760

原创 LeetCode_1394_找出数组中的幸运数

题目链接https://leetcode-cn.com/problems/find-lucky-integer-in-an-array/解题思路位图法先创建一个数组count[]获取数组次数然后反向遍历数组count[],找出最大的幸运数AC代码class Solution { public int findLucky(int[] arr) { int[] count = new int[501]; for (int value : arr) {

2020-11-12 08:19:32 201 2

原创 点互信息PMI(Pointwise Mutual Information)

最近在看文献时遇到了PMI(Pointwise Mutual Information),中文名叫点互信息.概念与定义PMI这个指标通常用来衡量两个事物之间的相关性,比如两个词,其原理很简单,公司如下PMI(x;y)=log⁡p(x,y)p(x)p(y)=log⁡p(x∣y)p(x)=log⁡p(y∣x)p(y)PMI(x;y) = \log\frac{p(x,y)}{p(x)p(y)} = \log\frac{p(x|y)}{p(x)} = \log\frac{p(y|x)}{p(y)}PMI(.

2020-11-11 21:34:59 7451

原创 LeetCode_1582_二进制矩阵中的特殊位置

题目链接https://leetcode-cn.com/problems/special-positions-in-a-binary-matrix/解题思路创建两个数组分别存储行和列的和对于每一个为1的位置,如果行列和均为1,表明这个位置为特殊位置AC代码class Solution { public int numSpecial(int[][] mat) { int ans = 0; int n = mat.length; int

2020-11-11 20:05:07 157

原创 LeetCode_961_重复N次的元素

题目链接https://leetcode-cn.com/problems/n-repeated-element-in-size-2n-array/解题思路首先对数组进行排序显然只要找到第一个A[i - 1] = A[i],那么这个A[i]就是我们要的答案而且肯定能找到这个A[i]AC代码class Solution { public int repeatedNTimes(int[] A) { Arrays.sort(A); for (int i

2020-11-11 20:04:36 186

原创 LeetCode_766_托普利茨矩阵

题目链接https://leetcode-cn.com/problems/toeplitz-matrix/解题思路显然不用判断第一行和第一列对于矩阵中剩下的元素,只要判断matrix[i][j] == matrix[i-1][j-1]即可AC代码class Solution { public boolean isToeplitzMatrix(int[][] matrix) { int n = matrix.length; int m = matri

2020-11-11 20:04:04 168

原创 LeetCode_867_转置矩阵

题目链接https://leetcode-cn.com/problems/transpose-matrix/解题思路ans[j][i] = A[i][j]AC代码class Solution { public int[][] transpose(int[][] A) { int n = A.length; int m = A[0].length; int[][] ans = new int[m][n]; for (in

2020-11-11 15:29:40 122

原创 LeetCode_1217_玩筹码

题目链接https://leetcode-cn.com/problems/minimum-cost-to-move-chips-to-the-same-position/解题思路可以联想到周期函数,f(n + 2) = f(n),每次移动2个单位,代价都为0那么就可以将所有的偶数都移动到0,所有的奇数都移动到1然后再比较一下偶数和奇数的数量,将较少的那个全部移动到另一个上面去AC代码class Solution { public int minCostToMoveChips(i

2020-11-11 13:10:58 131

原创 LeetCode_575_分糖果

题目链接https://leetcode-cn.com/problems/distribute-candies/解题思路首先用哈希表记录糖果的类型数量如果糖果种类大于糖果总数的一半,那么返回糖果数量的一半就好,因为妹妹已经得到种类最多的糖果了否则,返回糖果的种类。AC代码class Solution { public int distributeCandies(int[] candies) { Set<Integer> set = new HashS

2020-11-10 08:11:31 224

原创 LeetCode_1491_去掉最低工资和最高工资后的平均值

题目链接https://leetcode-cn.com/problems/average-salary-excluding-the-minimum-and-maximum-salary/解题思路排序后累加求和,然后求平均即可AC代码class Solution { public double average(int[] salary) { int len = salary.length; double sum = 0; Arrays.

2020-11-10 07:54:39 499

原创 LeetCode_1047_删除字符串中的所有相邻重复项

题目链接https://leetcode-cn.com/problems/remove-all-adjacent-duplicates-in-string/解题思路消消乐玩法,用栈若当前的字母和栈顶的字母相同,则弹出栈顶的字母。否则,则放入当前的字母AC代码class Solution { public String removeDuplicates(String S) { StringBuilder ans = new StringBuilder();

2020-11-09 13:37:29 164

原创 LeetCode_1714_数组中出现次数超过一半的数字

题目链接https://leetcode-cn.com/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/解题思路HashMap:遍历数组,将每一个数字出现的次数保存到HashMap中,然后返回众数即可摩尔投票:众数ans:初始值设置为数组的第一个元素票数votes:表示当前众数ans所获得的票数,初始值设置为0遍历,对每个元素num是否为0,如果是0则将当前遍历的元素num设置为众数ans判断n

2020-11-09 13:23:40 224

原创 LeetCode_169_多数元素

题目链接https://leetcode-cn.com/problems/majority-element/解题思路HashMap:遍历数组,将每一个数字出现的次数保存到HashMap中,然后返回众数即可摩尔投票:众数ans:初始值设置为数组的第一个元素票数votes:表示当前众数ans所获得的票数,初始值设置为0遍历,对每个元素num是否为0,如果是0则将当前遍历的元素num设置为众数ans判断num是否为众数ans是,则votes++否,则votes--排序:对数

2020-11-09 13:23:09 146

原创 LeetCode_1677_数组中重复的数字

题目链接https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/解题思路暴力法:遍历数组中的每个元素,然后在剩下的元素中寻找是否存在相同的元素。时间复杂度O(n2)O(n^2)O(n2)哈希表:初始化一个哈希表然后遍历每一个元素先判断哈希表中是否存在这个元素如果存在,则说明这个元素重复,直接返回否则,将这个元素加入到哈希表中,方便后续的判重时间复杂度O(n),空间复杂度O(n)(大佬的解法)原地

2020-11-09 08:35:48 245

原创 LeetCode_973_最接近远点的K个点

题目链接https://leetcode-cn.com/problems/k-closest-points-to-origin/解题思路直接计算距离然后使用lamba表达式返回前K个点AC代码class Solution { public int[][] kClosest(int[][] points, int K) { Arrays.sort(points, (point1, point2) -> (point1[0] * point1[0] + point

2020-11-09 00:19:24 150 1

原创 LeetCode_122_买卖股票的最佳时机II

题目链接https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/解题思路贪心法由于股票的购买没有限制,因此整个问题等价于寻找x个不相交的区间(li,ri)(l_i,r_i)(li​,ri​)使得如下的等式最大化∑i=1xa[ri]−a[li]\sum_{i=1}^{x}{a[r_i]-a[l_i]}∑i=1x​a[ri​]−a[li​].其中lil_ili​表示在第lil_ili​天买入,rir_iri​表示在第r

2020-11-09 00:09:57 187

原创 LeetCode_181_超过经理收入的员工

题目链接https://leetcode-cn.com/problems/employees-earning-more-than-their-managers/解题思路员工收入都超过经理了,那我还干什么经理!!!!!!AC代码SELECT a.Name AS 'Employee'FROM Employee AS a, Employee AS bWHERE a.ManagerId = b.Id AND a.Salary > b.Sal

2020-11-07 19:02:14 158

原创 LeetCode_905_按奇偶排序数组

题目链接https://leetcode-cn.com/problems/sort-array-by-parity/解题思路扫描两次数组A初始化一个数组ans[]第一遍扫描时将A中的偶数元素依次放入ans中第二遍扫描时将A中的奇数元素依次放入ans中AC代码class Solution { public int[] sortArrayByParity(int[] A) { int[] ans = new int[A.length]; int i

2020-11-07 18:56:30 124

原创 LeetCode_942_增减字符串匹配

题目链接https://leetcode-cn.com/problems/di-string-match/解题思路从左向右扫描字符串,如果碰到I,就取出当前最小的数,否则取出当前最大的数AC代码class Solution { public int[] diStringMatch(String S) { int len = S.length(); int low = 0, high = len; int[] ans = new int

2020-11-07 13:04:08 117

原创 LeetCode_876_链表的中间结点

题目链接https://leetcode-cn.com/problems/middle-of-the-linked-list/解题思路设置两个指针p,q。每次p走一步,q走两步这样当q走到链表末尾的时候,p正好是链表的中间结点AC代码class Solution { public ListNode middleNode(ListNode head) { ListNode p = head, q = head; while (q != null &a

2020-11-07 13:03:28 100

原创 LeetCode_852_山脉数组的峰顶索引

题目链接https://leetcode-cn.com/problems/peak-index-in-a-mountain-array/解题思路从左向右扫描找到第一个A[i] > A[i+1]的索引AC代码class Solution { public int peakIndexInMountainArray(int[] arr) { int ans = 0; while (arr[ans] < arr[ans + 1])

2020-11-07 13:02:58 73

原创 LeetCode_1636_按照频率将数组升序排序

题目链接https://leetcode-cn.com/problems/sort-array-by-increasing-frequency/解题思路频次高位,原值取反(降序),拼接正数,排序后还原原值。首先注意到1 <= nums.length <= 100,-100 <= nums[i] <= 100所以设置一个tmp[201]用来记录nums中数的频率原值取反,拼接正数:然后对每个数,令其为频率 * 1000 - nums[i] + 100

2020-11-06 13:31:25 306

原创 LeetCode_1356_根据数字二进制下1的数目排序

题目链接https://leetcode-cn.com/problems/sort-integers-by-the-number-of-1-bits/解题思路因为arr中每一个数都不会超过10410^4104,所以对于每个arr[i]计算出二进制中1的个数k然后arr[i] += k * 10001,然后再对arr[]进行排序。这样就可以实现按照二进制中数字1的数目升序最后返回arr[] % 10001即可AC代码class Solution { public int[] so

2020-11-06 12:33:48 170

原创 LeetCode_1640_能否连接形成数组

题目链接https://leetcode-cn.com/problems/check-array-formation-through-concatenation/解题思路遍历pieces保证在arr里,都有pieces片段就行。首先用一个HashMap记录arr元素及其对应的下标遍历pieces,如果arr里面都没有pieces的第一个数,那么返回false否则找到piece中第一个数在arr中的下标遍历piece,如果piece还没遍历完,arr就到头了,那么返回false当piec

2020-11-05 23:44:56 192

原创 LeetCode_1309_解码字母到整数映射

题目链接https://leetcode-cn.com/problems/decrypt-string-from-alphabet-to-integer-mapping/解题思路从右往左反向遍历设置一个游标cur,当s[i] == '#'时可知,需要将#前面的两位数字转换成字符串否则就直接将s[i]转换成字符串动态地将结果加入到ans中AC代码class Solution { public String freqAlphabets(String s) { i

2020-11-05 23:18:59 119

原创 LeetCode_1436_旅行终点站

题目链接https://leetcode-cn.com/problems/destination-city/解题思路首先将所有起点放入数组path中查找所有线路,不存在与path中的站点就是最后的终点站AC代码class Solution { public String destCity(List<List<String>> paths) { ArrayList<String> path = new ArrayList<&

2020-11-05 22:42:01 118

原创 LeetCode_1299_将每个元素替换位右侧最大元素

题目链接https://leetcode-cn.com/problems/replace-elements-with-greatest-element-on-right-side/解题思路逆序遍历。首先记录右边最大值max位最后一个值然后逆序遍历更新max,注意使用tmp记住当前的arr[i]即可AC代码class Solution { public int[] replaceElements(int[] arr) { int max = -1;

2020-11-04 14:44:15 94

TermExtractorRelated

这是微软开源的一个关键短语抽取工具,具体用法参照我的博客文章。这个短语抽取工具不同于当今深度学习中所用的模型做出来的工作,使用的方式应该是基于语法分析,句法分析,词法分析

2020-10-04

空空如也

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

TA关注的人

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