- 博客(1511)
- 问答 (5)
- 收藏
- 关注
原创 【LeetCode】239. 滑动窗口最大值
这题其实挺不好写的。知识点虽然重要,但细节非常繁琐,我这一次(20240709)花费了大概2个小时才写出这道题,但其实这还是我已经知道这道题是需要使用“单调队列”算法来求解,并我已事先学过单调队列算法了。所以知易行难,提升算法水平,还是需要老老实实的多敲代码。
2024-07-09 08:17:45 163
原创 【LeetCode】12. 小张刷题计划
稳住,能赢!没有经验的同学在面试岗位的时候,总是显得手忙脚乱,所以多练习,把技能提升,眼界提升,接着心态放平和,不要慌张,把面试题目读懂读透彻就会大大提升赢的概率。其实本题就是一道二分法解决的题目,只不过这里的二分法多了一个限制条件。
2024-07-09 07:40:59 342
原创 【LeetCode】976. 三角形的最大周长
虽然是一道easy题,但是要是在没有见过&面试的情况下直接写出来还不是那么容易。幸运的是,我做到了。本题的难点在于需要先排序,然后分析出最大周长三角形的条件,这样就避免抓瞎。
2024-07-02 22:05:34 387
原创 【LeetCode】 740. 删除并获得点数
>这真是一道好题!这道题不仅考察了抽象思维,还考察了分析能力、化繁为简的能力,同时还有对基本功的考察。想顺利地做出这道题还挺不容易!我倒在了第一步与第二步:抽象思维和化繁为简。题目的要求稍微复杂一些,我就看不出问题的本质了。这一方面体现的是抽象能力的缺失,另一方面体现的则是拙劣的思考能力。
2024-06-30 22:42:30 472
原创 【LeetCode】746. 使用最小花费爬楼梯
从这道简单的题来看,动态规划做的事儿就是:(1)设定一个状态,这个状态可以需要用一个数组来记录;(2)确定状态间的转移公式;得出正确解
2024-06-30 18:14:00 291
原创 【LeetCode】368. 最大整除子集
虽然这题挺难写的,但是仍然提醒了我:解题要注意方法。在明确分析当一条道路走不通的时候,就不要再犹豫了,就要果断的换方法,尝试用其它方法解决。否则一味的消耗时间,得不偿失。换方法的前提是明确的分析(一定要落到纸上,为什么得不出结果?是复杂度太高?还是难以实现?)后得出的结论是不可行。
2024-06-30 10:56:09 331
原创 【LeetCode】164. 最大间距
本题是肯定是需要使用排序方法才能得到答案,但有什么好的方法能在O(N)的时间要求里排好序呢?基数排序满足题目要求,其能在O(N)的时间复杂度和空间复杂度里对整数数组进行排序。
2024-06-29 23:15:40 323 1
原创 【LeetCode】53. 最大子数组和
刚开始拿到题目,没有什么想法。但是开始分析起来的时候,就立马有思路了。所以做题要敢于分析,敢于思考,敢于动脑。
2024-06-29 10:15:27 285
原创 【LeetCode】 49. 字母异位词分组
这道题的思路不是那么好想到。有两种解决方法:(1)暴力法;但是这种方法的复杂度还是挺高的。(2)映射法。因为是需要把由相同字母组成的单词放到一块儿,所以可以理解成相同字母的单词的key是相同的。那么怎么得到这个key呢?可以用数组记录。
2024-06-28 21:06:42 288
原创 【LeetCode 3】无重复字符的最长子串
思想就是双指针,left=right=0。从左到右遍历字符串,right递增,同时将遇到的字符放到set中。遍历的过程中,判断set中是否已经存在该字符了,如果存在,那么就递增left,直到遇到左指针与右指针所指位置的字符相等。相等时,将left加一。再递增right,这个过程中找到最大值即可。
2024-06-27 22:25:29 305
原创 【LeetCode 392】判断子序列
这其实就是用了两个下标,累计的判断字符串s的字符是否出现在了字符串t中,如果出现了,那么就把字符串s的下标往后移。字符串t的下标始终后移。
2024-06-27 21:35:56 333
原创 【LeetCode 5.】 最长回文子串
一道题能否使用动态规划可以从判断最优结构是否是通过最优子结构推导得到?如果具备这个特性,那么就应该朝动态规划思考。本题令dp[i][j]表示串s[i:j+1]是否是回文子串,那么判断`dp[i][j]` 是否是回文子串,相当于判断s[i] 与 s[j] 是否相当 + dp[i+1][j-1] 是否相等。
2024-06-15 22:12:38 475
原创 【LeetCode 92.】 反转链表 II
尽可能抽象问题,然后简化代码。同时需要注意,while循环里面的条件值要切记不能随着while循环而变化了!写代码要时刻小心!
2024-06-14 21:57:41 262
原创 【LeetCode 12】整数转罗马数字
如果这题按照正向的求解则非常麻烦。例如对于3749这个数字,你需要判断是千分位,还是百分位,还是十分位,还是个位?然后再判断数字大小进行组合,这么一通操作下来非常繁琐。但如果采取逆向思维解题,即按照从大到小的顺序将所有的组成成分排序,这样就能直接映射出答案了。这题背后有贪心的味道。
2024-06-14 00:04:31 337
原创 【LeetCode 128】 最长连续子序列
判断前一位数(i-1)在不在字典中是这道题的关键之处,这样做之后可以避免重复查找,从而达到O(n) 的时间复杂度。如果没有这个判断,那么时间复杂度最坏就是O(N^2)级别了。
2024-06-12 22:07:55 361
原创 【LeetCode 35】搜索插入位置
经典的二分搜索题,没有特别之处。可以用于考察同学对二分法的理解是否到位。这道题的关键点在于:找到满足第一个大于等于target条件的数的下标即可,而这个下标就是left。所以最后返回值就是left。
2024-06-06 22:42:48 292
原创 【LeetCode 1】两数之和
虽然这是一道简单题,但是给了我非常多的启迪。深搜与多重for循环没有本质区别,只不过深搜是把多行代码放到一个函数里递归调用了。但其实本题更好的方法是利用空间提升速度。告诫我们写算法题绝不是为了炫技,而是为了优雅地解决问题。
2024-06-02 10:29:23 372
原创 【LeetCode 101】对称二叉树
自己动脑思考的时候未能考虑全面,以为就是简单的递归题,哪知道越做越复杂了。所以在下笔之前一定要充分考虑清楚,避免出现这种手忙脚乱的情况。这道题虽然是简单题,但是质量确实不错,是一道很好的面试题。
2024-06-01 16:19:41 310
原创 【LeetCode 77. 组合】
总结了一下,深搜处理的代码,关于返回值有三大类。第一类:层层传递,将最深层的结果传上来;第二类:每层都返回值,迭代更新;第三类:使用全局变量,将结果写到变量中保存。本题的深搜代码则需要配合第三类来解决。
2024-05-31 00:20:23 283 1
原创 【LeetCode 130. 被围绕的区域】
这题其实非常不错。如果正向解,非常麻烦;因为很难界定哪些O是被包围的?但是如果反向解呢?因为边界的O不会被包围,那么就可以想到跟边界O相连的O都不会被包围。那么除此之外的O都会被包围,题目就解决了。
2024-05-30 23:09:27 320
原创 【LeetCode 151】反转字符串中的单词
使用Python中的内置函数会极大地提升解题速度。强烈建议求职的同学要对某一个语言的内置函数做到十分熟悉!
2024-05-26 22:00:24 335
原创 【经典论文阅读10】MNS采样——召回双塔模型的最佳拍档
这篇发表于2020 WWW 上的会议论文,提出一种MNS方式的负样本采样方法。众所周知,MF方法难以解决冷启动问题,于是进化出双塔模型,但是以双塔模型为基础的召回模型的好坏十分依赖负样本的选取。为了解决Batch内负样本带来的选择性偏差问题,本文提出MNS方法融合了批采样和均匀采样。实验表明,配合这种负样本的采样的双塔模型的召回能力得到了明显提升。
2024-05-26 09:58:17 1294 1
原创 【经典论文阅读9】DSSM模型——开搜推算法先河:用点击数据训练深层模型
这篇发表于2013年CIKM上的搜索领域文章。核心思想就是两点:提出使用 clickthrough data 来训练deep structured semantic 模型。反复读后再回顾这篇文章,惊叹作者写作真好!结构相当清晰,逻辑非常流畅。标题里面的『 Deep Structure』对应在Introduction中的Hinton的研究路子;『using Clickthrough Data』则对应LSA模型的另外一条路子。现在来看这些思想已成规矩,在当年却是开创先河的存在!
2024-05-05 12:22:56 1237 1
原创 【经典论文阅读2】MF算法——推荐系统里的远古巨兽
这一篇由雅虎研究院和AT&T公司联合发表在IEEE的文章,翻开了推荐系统新的篇章。该团队提出使用矩阵分解(Matrix Factoriztion)的技术来实现商品推荐,而帮助MF算法一炮成名的舞台则是Netflix Prize competition,在这届机器学习的江湖大会上,再次证明了江湖上了一个道理:要想成为天下第一,首先得能干掉天下第一。毫无疑问,通过引入各种可以使用的隐式数据后,MF的RMSE降到了0.88以下!自此之后,推荐系统正式进入到矩阵分解时代。
2024-05-04 18:35:15 1139
原创 【经典论文阅读1】FM模型——搜推算法里的瑞士军刀
FM模型发表于2010年,它灵活好用且易部署。作者行文极其流畅,作者首先对要处理的问题进行了介绍,接着作者提出FM模型,这个模型与SVM的关键区别在于FM模型在稀疏数据上具备更好的性能。FM模型的底层思想就是用特征向量(可以看出本文已经初步具备embedding的思想)的点积代替简单的权重从而得到更好的权重表示,这种思想巧妙地绕开了稀疏数据的影响。现在FM模型仍然在搜推行业上发挥作用,对于业务刚起步的公司来说,它不仅效果好,而且性能强,故大多数人称之为搜索算法里的瑞士军刀。
2024-05-04 18:06:51 1194
原创 【经典论文阅读5】Que2Search—Facebook移动电商召回工作中的碎碎念
这一篇发表于2021年KDD上检索方向的文章,继承了Facebook论文一贯的工业风格。让我感触颇深的有两点。第一是文中那句`There is no silver bullet for retrieval`。我的工作经验也告诉我,基于语义的召回无法解决所有问题。第二则是召回模块需要综合recall、precision、CPU利用率和时延等诸多方面。尽管我已对百度搜索的召回流程比较熟悉了,但是坦白说,我还没从未在整体架构的高度上去宏观地考虑算法落地。这篇文章的作者手把手地告诫大家检索工作上的重点二三事儿!
2024-04-21 15:56:54 882 1
原创 【经典论文阅读8】Deepwalk算法—基于随机游走的节点表示学习
word2vec使用语言天生具备序列这一特性训练得到词语的向量表示。而在图结构上,则存在无法序列的难题,因为图结构它不具备序列特性,就无法得到图节点的表示。deepwalk 的作者提出:可以使用在图上随机游走的方式得到一串序列,然后再根据得到游走序列进行node2vec的训练,进而获取得到图节点的表示。本质上deepwalk和word2vec思想相同,deepwalk算法的提出为图结构学习打开了新的天地。
2024-04-14 23:32:54 6510 4
原创 【经典论文阅读3】YouTubeDNN—基于深度学习的搜推系统开山之作
YouTubeDNN是发表于2016年九月的文章,在搜索推荐仍然基于矩阵分解的时代,抛出了基于深度学习的召回排序模型,无异于朝平静的湖面扔出了一枚重磅炸弹。如大家所见,在这十年里,基于深度学习的搜推模型几乎已成圭臬。看到这里,你怎么还能说goggle不伟大?
2024-04-14 12:27:03 6800 4
原创 【经典论文阅读20】《Distilling the Knowledge in a Neural Network》
介绍Hinton写的蒸馏大作。
2023-07-16 20:37:22 1187
原创 【LeetCode】38. 外观数列
首先要读懂题意,其次需要注意这类代码是工作中常用的一类代码。for循环的时候需要注意退出循环后,最后的一项记录是否被记在了描述中。
2023-05-25 11:14:26 291
空空如也
Hadoop中jps命令出现Command not found
2018-01-21
Hadoop执行命令出现警告
2018-01-20
怎么判断TextBox的输入数据在查询的结构数据集中
2016-09-14
FTP怎么在资源管理中打开
2016-05-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人