LeetCode高频Top150题
文章平均质量分 91
冰露可乐
勤能补拙
展开
-
LeetCode高频题:子串权值定义为,最长有效括号子序列的长度,请你返回字符串s的所有子串权值的和是多少
1)括号匹配问题,我多次讲过,这是最新的最长有效括号子序列长度,简单,那个最长有效括号子串很难3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-09-03 20:23:58 · 1378 阅读 · 0 评论 -
LeetCode高频题:多多发明了一个跳棋游戏,n个格子组成,格子上有字符‘L’或‘R’,遇到L走i-xi,遇到R走i+xi,问每个位置为起点,到游戏结束,分别需要走多少步
1)走过的不能走,就是典型的业务限制类型递归就行3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-09-03 19:35:26 · 1127 阅读 · 0 评论 -
LeetCode高频题:戈壁滩种树,一排n棵树,至少有k棵树存活时,最终形成的风景线有多少不同的情况
1)动态规划,nk显然就是样本位置对应模型,整一个二维表即可,摸索很快就OK了3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-09-02 22:01:04 · 416 阅读 · 0 评论 -
LeetCode高频题:Android系统中WakeLock防止手机进入睡眠模式,统计出每个应用对WakeLock的不同贡献值
1)贪心的题目,一般就是排序+堆,典型的这种操作,大厂经常考,据说这个是OPPO23届秋招的题目3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-09-02 13:13:49 · 2915 阅读 · 14 评论 -
LeetCode高频题:n杯溶液按照顺序排成一排,可以混合相邻2杯,合并代价/时间是两杯质量和,经过n-1次合并为1杯,最小时间/代价是多少
1)将相邻的k个元素合并,代价是他们的累加和,这种题目就拿本题改编代码就行3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-08-24 21:53:04 · 329 阅读 · 0 评论 -
LeetCode高频题88. 合并两个有序数组
1)merge,一般来说我们不这么搞,实际上归并排序中的merge会用第三个数组help来转移;3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-08-24 15:19:04 · 324 阅读 · 0 评论 -
复盘:Python内存管理&垃圾回收原理
1)计数器加三代回收机制3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-08-20 08:06:37 · 212 阅读 · 0 评论 -
LeetCode高频题:新冠密接者排查,第一密接和第二密接都是谁?按顺序输出
1)可以考虑用dfs,但是何必呢,就是ij邻居8个判断一下就是了,非常简单2)这次菊厂的机试相比之前没有那么困难了3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...原创 2022-08-19 08:28:05 · 690 阅读 · 2 评论 -
LeetCode高频题84. 柱状图中最大的矩形,单调栈求位置i左边右边距离i最近且比i位置小的位置,然后结算面积
1)单调栈那个文章,我讲的很细,用list装重复的arri,这样结算的时候,找那个位置就不会出错2)对于本题,单调栈,直接干,当i位置原创 2022-08-15 16:11:39 · 170 阅读 · 0 评论 -
LeetCode高频题:《逆水寒》在地图的制作中,美术在地图上刷一片连通区域,连通区域自动填充,请你判断给定几个点位置,他们是否属于被刷区域
1)连通性的问题,往往考虑连通湖,用小根堆模拟非湖泊区域先遍历,然后遍历湖泊区域,弹出节点cur,结算cur的邻居,满足条件才能算湖泊内部的邻居,可以做操作,或者统计结果2)全国最难的三家公司:网易,华为,字节,你要是想进他们,就要脚踏实地学习数据结构与算法,否则你题目都看不懂3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...原创 2022-08-15 12:06:51 · 398 阅读 · 0 评论 -
LeetCode高频题:设计一个股票推荐系统,自动根据注册用户的关注情况进行推荐,询问时,会推荐那个人多少只他还没有关注的股票
1)并查集核心参数nodes表,打包节点的,parentMap,并查集集合的代表节点,sizeMap表,每个结合有几个节点2)本题外加一个哈希表holder,用来保存用户user手里有多少只股票的,然后并查集内部的加入函数变了,同时多了查询函数,查询的关键在于合并user和u之后,需要更新user和u双方手里的股票3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。......原创 2022-08-13 20:25:25 · 357 阅读 · 0 评论 -
LeetCode高频题:一棵树的第i个节点的权重ai定义为:从根节到该节点的路径上,红色节点和蓝色节点的数量之差,求所有节点的权值之和
0)图的难点在于图的数据结构表示,搞成你熟悉的方法就行,另外,图的算法是不难的,无非就是bfs和dfs运用而已1)BFS特点用队列搞定,弹出打印,结算结果。2)DFS是用栈实现的,最重要的2点,压入时结算,弹出不结算,还有就是看cur的邻居之前,必须先把cur再次压栈,保证一条道走到黑,回来还能找到我cur,只压cur的一个邻居,立马break;3)当然了,一遍bfs搞定也行的,最关键的还是图数据结构的构建3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-08-11 22:40:09 · 2753 阅读 · 4 评论 -
LeetCode高频题互联网大厂笔试题:手撕k-means聚类算法:python代码实现
1)k-means算法思想简单,思路明了,写代码也好搞,python代码比java代码简单2)其复杂度为o(TNk)3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。......原创 2022-08-08 12:41:59 · 1076 阅读 · 0 评论 -
LeetCode高频题:dfs排列组合问题,剪枝策略,参观展厅总时间120分钟,请你给出所有可能的参观方案的个数
1)dfs剪枝,经常考,经常写,就是LeetCode高频题里面的东西2)自己多敲代码,手撕熟悉了,解决问题就不难了3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...原创 2022-08-07 12:34:22 · 462 阅读 · 0 评论 -
LeetCode高频题:最长公共子序列,玩游戏A和游戏B,两兄弟加起来最多可以获得多少奖品
1)互联网大厂的笔试面试题,就是变着方考你基础的数据结构与算法,所以基础数据结构与算法你得熟透了2)涉及到给你的是2个参数,那么就要考虑是不是多样本位置对应模型的动态规划,分清楚ij格子的状况和ij位置的关系就行3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...原创 2022-08-07 10:07:44 · 1369 阅读 · 0 评论 -
LeetCode高频题79. 单词搜索,如果 word 存在于网格中,返回 true ;否则,返回 false
1)dfs剪枝策略,这是我们多次说过的事情了,中途不合格,就退出,合格一个OK2)这个题其实算简单的那种,word从k到结束,这个idea经常是我们要转的,否则代码很负责3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。......原创 2022-08-06 18:36:42 · 155 阅读 · 0 评论 -
LeetCode高频题78. 子集,返回该数组所有可能的子集(幂集),生成所有的子序列
1)全排列和这种组合问题,老掉牙的暴力递归,恢复现场,多次说过了3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-08-06 11:23:47 · 362 阅读 · 0 评论 -
LeetCode高频题75. 颜色分类:荷兰国旗问题
1)荷兰国旗问题3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-08-06 10:37:37 · 859 阅读 · 0 评论 -
LeetCode高频题76. 最小覆盖子串:欠账还债还款问题,子串考虑i开头的情况所有答案更新一波
1)本题不是动态规划,自然子串就是考虑所有位置i开头的答案,先建立欠债表,然后还债,刚刚还完就让L--R缩最短,然后认为欠债,考虑别的L开头的可能更短的答案;3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...原创 2022-08-05 21:43:58 · 214 阅读 · 0 评论 -
LeetCode高频题73. 矩阵置零
1)用辅助空间势必耗费额外空间2)这种记录要变0或者1的事,可以原地记录,简单几个变量就行3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...原创 2022-08-05 11:57:51 · 406 阅读 · 0 评论 -
LeetCode高频题70. 爬楼梯,青蛙跳台阶,暴力递归的尝试,改记忆化搜索和动态规划代码
1)斐波那契数列,和类似斐波那契数列,都是通过简单的递归函数,改为动态规划的2)这题经常出现在各大厂笔试面试中,很简单很简单3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...原创 2022-08-05 09:32:22 · 252 阅读 · 0 评论 -
LeetCode高频题69. x 的平方根,二分法搞定,非常简单
1)开根号,保留int结果2)二分法OK3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-08-05 09:08:28 · 422 阅读 · 0 评论 -
LeetCode高频题128. 最长连续序列,经常被互联网大厂面试考到
1)set可以控制最小的开头2)哈希表俩记录最长连续子序列的长度,那个过程复杂,关键就是合并过程3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。.........原创 2022-07-27 23:35:09 · 604 阅读 · 0 评论 -
LeetCode高频题66. 加一,给你一个数组表示数字,则加1返回结果
1)这是史上最简单的算法题了3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-07-24 22:00:39 · 339 阅读 · 0 评论 -
LeetCode高频题56. 合并区间,将重叠的区间合并为一个区间,包含所有区间
1)这个题,涉及区间,线段,重合问题,就是考虑要排序的事情,贪心解决,要么排序start,要么排序end,反正要想办法用贪心搞定2)中途关键的地方,就是融合区间到N-1那,最后那个区间是没有被加入结果的,所以自己捣鼓清楚3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。.........原创 2022-07-24 11:29:25 · 1402 阅读 · 0 评论 -
LeetCode高频题62. 不同路径:机器人从左上角到右下角的路径有多少条?纯概率排列组合问题,而不是动态规划题
1)本题,实际上最大的收货,在于我们如何求排列组合C(n,k),防止分子分母越界溢出int,那就要通过不断求ab最大公约数gcd来约,这样不会溢出,在单调栈那求C(k,2),当时问题规模很小,不需要这样复杂2)另外,ab的最大公约数,死记硬背,就是gcd(a,b)=b==0?a:gcd(b,a%b);3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...原创 2022-07-23 19:38:14 · 701 阅读 · 0 评论 -
LeetCode高频题53. 最大子数组和,具有最大和的连续子数组,返回其最大和
1)子数组,连续,则考虑以i结尾的子数组的答案,o(n)一遍搞定2)考虑以i开头的状况,往往是子序列,不连续的状况3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。......原创 2022-07-23 18:27:13 · 490 阅读 · 0 评论 -
LeetCode高频题:最少经过几次操作可以使数组变为非降序状态
1)本题难就难在怎么想解法,你要将其变为非递减状态,原来那个数组排序后位置动过的最长递增那个子数组,是不需要动的,它的长度就是不动的长度2)N-这个最长严格递增子序列长度就是我们要动的其他位置,难想但是见过,下次就明白了3)另外,我们不求这个题,单独求最长递增子序列长度怎么求,那个题很经典,也很困难,要学学3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...原创 2022-07-23 11:13:13 · 3424 阅读 · 8 评论 -
LeetCode高频题:二叉树的锯齿形(Z字形,之字形)层序遍历
1)普通的bfs二叉树层序遍历,非常简单,字节将队列不断从左往右加就行了2)本题就是从1)改变来的,bfs队列控制,奇数层的时候,让加入队列的顺序从右往左,偶数层的时候,加入队列从左往右3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。.........原创 2022-07-21 21:29:00 · 741 阅读 · 0 评论 -
LeetCode高频题:客栈选择问题,总共有多少种选择住宿的方案,保证晚上可以找到一家最低消费不超过 p 元的咖啡店小聚
1)客栈问题是很经典的题目,贪心,然后统计可以组合的方案2)贪心的题目就是小根堆加排序解决的,老油条了3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。......原创 2022-07-17 12:50:34 · 354 阅读 · 0 评论 -
LeetCode高频题:图像交并比IoU计算方法和手撕代码
1)笔试面试都好说,拿个图,直接画一下就行了,不是背公式,更不是背代码的事2)IoU = area_X / (area_1 + area_2 - area_X) 3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...原创 2022-07-16 10:20:49 · 1030 阅读 · 0 评论 -
LeetCode高频题:三个长度为N的无序数组A,B,C,求 A[i] + B[j] + C[k] = 64 的(i , j, k )的组合总数量
1)比如你整一个额外空间复杂度为o(64)的也等价于o(12)枚举所有的64和的情况,i定了,j就是0--64,k只能是64-i-j了3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...原创 2022-07-16 09:40:43 · 396 阅读 · 0 评论 -
LeetCode高频题53外加题:数组arr,你不能选相邻的数,请你选出,组合起来的数的累加和最大值是多少
1)相邻的数不能选,然后找arr任意组合出来的数组最大累加和就考虑0--i范围上任选的状况2)组合也好,子序列也罢,子序列也是同样的道理,也是0--i范围内的任选子序列,这种尝试技巧要熟悉3)**遇到子数组(连续的)问题**,直接尝试**以i结尾的子数组**的答案,求出来更新给max遇到**组合,子序列(不连续的)**这种不是连续的子数组问题,**直接考虑0--i范围内的答案**,填dp表,最后得到结果3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。..原创 2022-07-13 22:03:51 · 602 阅读 · 0 评论 -
LeetCode高频题53. 最大子数组和
1)遇到子数组,显然考虑以i结尾的情况,或者考虑以i开头的情况,收集答案,然后整结果就行3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。......原创 2022-07-13 21:16:07 · 422 阅读 · 0 评论 -
LeetCode高频题:二分法求开根号sqrt(x),保留3位小数,速度快,简单
1)二分法求开根号sqrt(x),保留3位小数,速度快,简单3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。原创 2022-07-12 21:20:18 · 2384 阅读 · 2 评论 -
LeetCode高频题:int数字x被拆为p1,p2,p3,输入N必须满足N=p1+p2/p3,p2/p3整除,N有多少种分数形式
1)最重要的就是如何枚举int类型的数字x的全排列,中间涉及到很重要的交换函数,把int类型数字x的L和R位置交换2)另外,如何把一个x拆分为p1,p2,p3,然后看看达标记录map,拆分的方法就是除法,取模,小问题。3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。.........原创 2022-07-10 22:30:16 · 178 阅读 · 0 评论 -
LeetCode高频题:请你打印int数字x的所有全排列,x只包含且必须包含1-9的每一个数字
1)和之前讲过的全排列一样,就是让arr【x】的index和index--N-1位置交换,每一个位置做一次排头即可2)只不过arr的交换很容易,但是int数字的x交换稍微做个除法取模加减法转换一下,速度快,千万不能把int类型x转化为字符数组去交换,再连乘去转数字,这样速度极其慢的3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。......原创 2022-07-10 20:33:10 · 244 阅读 · 0 评论 -
LeetCode高频题:如何不用int转字符数组,实现int类型数字x的第L位和R位数字交换
1)int类型中L和R位置的数字交换,千万别把int转char[]然后再交换,再转化为int类型的数字,还需要for循环倍乘去加,速度不快2)通过简单的除法取模,把LR数字取出来,然后拿着这俩数,通过简单的减法,把L换位R,然通过加法,把R换位L,a+b就是咱们交换LR的int结果,速度极其快。3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。.........原创 2022-07-09 18:28:51 · 250 阅读 · 0 评论 -
LeetCode高频题956:数组arr,能否把数组取出若干个数,使得取出数之和,与剩下数的和相同
1)本题,arr累加和为sum,如果A=sum/2,你填一个dp[i][j]表,最开始默认dp都是-1,dp[i][j]代表从0--i范围内任意选arr元素,恰好能装j这么多和,如果最后你发现dp[M-1][A]!=-1,那很OK,一定是代表arr被均分了2)本题其实还可以通过排序双指针搞定,复杂度o(nlog(n))3)本题还能直接通过改编LeetCode956题的广告牌问题来解决,让map记录所有AB桶可能的差值,最后map.get(0)=A,你看看2A是否为sum,是就true3)笔试求AC,可原创 2022-07-02 23:52:07 · 305 阅读 · 2 评论 -
LeetCode高频题:从矩阵matrix的左上角,只能往右往下走,走到右下角的最小路径和是多少
1)经典的动态规划,从ij格子去00位置,或者右下角位置,这就是业务限制类模型的DP4模型2)说实话,除了腾讯,字节,华为,阿里这些极端一线大厂之外的其他互联网大厂,基本考题,都要比你平时准备的容易的多,只不过,你要加快速度,因为1个半小时,40分钟做选择题,你只有50分钟,要做三道题,还是很困难的,所以平时不努力,临场无法应对的。3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。......原创 2022-07-02 18:24:55 · 951 阅读 · 1 评论