- 博客(1509)
- 问答 (5)
- 收藏
- 关注
原创 【LeetCode】236. 二叉树的最近公共祖先
仔细读题,题目的限制条件也是帮助判断使用什么方法的关键。LCA的算法还是需要仔细体会的。这题的难点在于如何找出判断出LCA的条件,从而写出合适的深搜算法。
2022-06-14 10:29:10 145 2
原创 【LeetCode】21. 合并两个有序链表
合并链表,这虽然是一道简单题,但是里面仍然有很多优化点,如果我作为面试官,我可能会选择这道题。它考察了对链表的基本操作,同时还会有“头结点”这种小众的知识点。能十分反应应聘者的水平。同时这题还可以引导面试同学使用递归来写。对基本功的考察非常深入。
2022-06-13 22:14:31 73
原创 【算法竞赛刷题模板17】二分法
二分搜索是高频考点。有很多问题可以转化成二分法求解。比如最优化问题(要求连续序列最优化分割);有时候也需要注意二分之后的比较对象不一定是某个指定的target,它可以是跟mid前后比(852. 山脉数组的峰顶索引)。总之,二分法有很多变型题,需要认真感受。
2022-06-13 16:30:03 152
原创 【LeetCode】209. 长度最小的子数组
一道题可以有很多实现方式,最优的不一定是最好的。可能有些实现起来较难的,才是值得学习的。虽然本题可以用滑动窗口的思想来解决,但是利用前缀和+二分倒也不失为一种好方法。
2022-06-12 19:09:28 344
原创 【LeetCode】数组中第K大的元素
本题之所以是经典题,原因就在于其利用了排序的思想解题,但是又没有完全排序。同时本题考察点除了快速排序外,还有转换问题的能力。能想到将这道题使用快速排序来写则是另一个考点。
2022-06-11 15:28:20 223 1
原创 【LeetCode】剑指 Offer II 020. 回文子字符串的个数
这题与之前的题稍有类似,但是又不太一样。本题需要使用区间dp的思想:即先判断小串是否是回文串,然后再基于小串的基础上,判断长度的串是否是回文串。【是有那么一点儿区间dp的想法在其中】...
2022-06-10 17:39:04 174
原创 【LeetCode】114. 二叉树展开为链表
想法比较简单:第一步将树转化成左链子树,然后再`reverse`一下得到右链子树。实现起来也比较简单。
2022-06-07 23:32:11 140 1
原创 【LeetCode】42. 接雨水
接雨水是一道高频面试考题。本题最重要的一个环节是如何计算面积的?使用top这么一个变量,就保证了当前实际的雨水高度,雨水的长度就用坐标间的间隔得出。另外,本题的一个关键点:while循环中的各个条件需要同时满足。
2022-06-07 23:27:51 364 1
原创 【LeetCode】105. 从前序与中序遍历序列构造二叉树
根据先序遍历和中序遍历构建一棵二叉树。左右子树的个数不尽相同,所以就要求在函数中传递这个长度变量。
2022-06-07 09:23:33 151
原创 【LeetCode】416. 分割等和子集
深搜代码过不了完整的测试用例。很明显这又是一道动态规划题。大意就是从固定候选集中判断是否能够组成一个数target。简直不就是0-1背包模板题嘛!只不过这里的数不可以重复取,同时用一个滚动数组减小空间的使用。.........
2022-06-06 23:39:22 105
原创 【LeetCode】437.路径总和III
前缀和也是可以应用到树中的!同时需要注意,在记录前缀和的时候需要使用字典而不是set或者list,因为我们需要利用到前缀和出现的频率信息。
2022-06-06 21:41:01 89 1
原创 【LeetCode】64. 最小路径和
根据数据规模,也可以佐证本题需要使用dp。(1) 定义数组dp[i,j],表示到坐标[i,j]的最小路径和;(2)根据题意描述得到状态递推公式。还有一个小细节是:可以利用Python的特性规避了复杂的边界判断,完美!
2022-06-06 20:36:24 93
原创 【LeetCode】221.最大正方形
dp[i][j]表示为matrix[i][j] 位置可以得到的最大正方形的边长。那么可以得到递推公式进而得到整个矩阵中的最大正方形。
2022-06-06 19:43:52 86
原创 【LeetCode】72. 编辑距离
这道题确实有些难度,不是那么好写的。难点有二:第一,要知道这题是用动态规划写,同时能够推导出递推式;第二,要学会适当的简化条件,否则在if-else太多的时候,就容易出差错。
2022-06-06 19:03:56 122
原创 【LeetCode】494. 目标和
本题竟然可以使用动态规划?!我是大大的震惊!本题考的就是抽象分析的能力,难点在于如何将本道题转换成一个动态规划需要解决的题?
2022-06-06 10:47:30 77
原创 【LeetCode】39. 组合总和
深度优先搜索。本题主要需要考虑两点:(1)如何去重?去重就需要保证,访问了当前的下标i之后,不能再访问的元素。(2)如何保证每个数字可以重复选择?递归的时候只要保证每次访问的是当前这个下标即可,也就是需要将数组下标传入到函数中。其实这题就是普通的深搜题,没啥难度。......
2022-06-05 23:17:29 115
原创 【LeetCode】337. 打家劫舍 III
树上dp,只需要定义每个节点该返回什么样的值就可以了。python可以同时返回多个数组成一个元组。
2022-06-05 16:58:36 88 2
原创 【LeetCode】238. 除自身以外数组的乘积
使用两个数组分别计算数字nums[i]前的乘积和数字nums[i]后的乘积。计算题目中需要的这个值只需要将二者乘在一起即可。
2022-06-05 16:51:11 68
原创 【LeetCode】221. 最大正方形
拿到一道算法题首先确定使用什么方法,然后再在这个基础上仔细抽象出变量的含义,再进行下一步的操作。切勿在不正确的方向上浪费时间!
2022-06-05 16:41:45 71
原创 【LeetCode】560. 和为 K 的子数组
前缀和搭配字典使用。需要注意的是:在查找map的时候,要保证前缀和的出现顺序,所以这就要求需要在生成前缀和之前来计数
2022-06-05 14:40:52 162
原创 【LeetCode】581. 最短无序连续子数组
(1)直接的想法:数组排序,然后看哪些数在正确的位置上,除此之外的,都是需要重排的。(2)使用O(n)的复杂度。在顺序遍历时获取...
2022-06-05 09:57:35 151
空空如也
Hadoop中jps命令出现Command not found
2018-01-21
Hadoop执行命令出现警告
2018-01-20
怎么判断TextBox的输入数据在查询的结构数据集中
2016-09-14
FTP怎么在资源管理中打开
2016-05-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人