思路: 这两题都是单调栈问题,在遍历的时候使用单调栈来降低时间复杂度,每日气温一看题意就是能使用双重for进行暴力求解的题目,时间复杂度为n的二次方,当然在一道中等的题目上暴...
思路: 这两题都是单调栈问题,在遍历的时候使用单调栈来降低时间复杂度,每日气温一看题意就是能使用双重for进行暴力求解的题目,时间复杂度为n的二次方,当然在一道中等的题目上暴...
思路:本题题意就是要求图的最小覆盖个数的问题,往往这些覆盖点都是图中度数最大的点,本题的图是一棵二叉树,二叉树中度数最大的节点也就是中间层的父节点,所以摄像头应该从下往上放,...
思路:本题也就是要求重叠区间的数量,因为题目给的一系列区间的无序的,我们需要先进行排序才能进行遍历处理,我们可以按左边界进行从小到大的排序,然后再从左到右进行逐个的遍历,判断...
补一下前两天做题的笔记身高重建队列思路:本题要按照题目中数组的含义来正确的排列队列,同样本题有两个维度,身高和前面有几个比自己高的人数,在面对两个维度的问题时候,需要分别进行...
思路:这题虽然思路很简单,但是也有易错的地方,我一开始的做法是仅使用一个变量来保存收到的金额,如果手上的金额大于找零的金额即为true。实际上这是不正确的,本题的金额只有5 ...
思路:看到本题最初的大的想法就是,在遍历中确定每一个孩子应该分到的糖果,然后用一个累加器记录,实际上是不太可行的,在遍历中,每个孩子分到的糖果同时受到左右两边相邻孩子的影响,...
思路:这题题目描述挺复杂的,简化一下其实就是这个意思,我们需要走过每一个加油站,每个加油站可以加固定数量的油,开到下一个加油站也需要消耗固定数量的油,判断从哪一个加油站出发可...
思路:本题能够很好的体现贪心的算法思想,我们需要对数组中的值进行k次取反,得到总和最大的数组,那么我们首先就应该进行最大负数的取反,紧接着对剩余的负数按照绝对值的大小进行取反...
思路:本题很容易陷入一个误区,也就是思考具体应该跳几步才能刚刚好达到终点,其实这是没必要的,我们只需要在遍历的过程中判断最长能够到达的范围是否超过终点即可。我们以题目中的[2...
思路:摆动序列即两个相邻数字的差值为正负数交替的整数序列,看完题目需要注意几个点,一个是求的是子序列,也就是可以是不连续的,第二个是一个整数序列可能有多个一样长的摆动子序列,...
思路:从题目的描述中可以看出,本题要求的是子序列,也就是不一定需要连续这个条件,我们可以接着延续上一题的思路,设置二维的dp数组 dp[i][j]表示字符串s在[i, j]范...
思路:本题可以使用双指针法和动态规划进行计算,因为之前都是动态规划的题目,所以这题也先用动态规划来解决,一开始看到题目会想到把dp数组设置为一维的,直接代表长度为i的字符串个...
思路:本题是困难题,但是在前几天那道两个字符串的删除操作的基础上,继续延续思路,难度会降低很多,我们依旧使用动态规划。dp数组的含义为dp[i][j]:表示以下标i-1为结尾...
思路:本题要求使得 word1 和 word2 相同所需要删除的最小字符数,也就是说要找到最大的公共子串需要删除多少个字符,那么本题依旧可以延续之前的思路,不同的地方在于本题...
思路:本题依旧先确定dp数组及其含义,往往题目要求求什么,dp数组的含义就是什么,所以在本题中dp数组含义为 dp[i][j]表示以i-1结尾的s中出现j-1结尾的t的个数。...
思路:这题依旧比较容易,判断s是否是t的子序列,我们依然可以用前几天求共同子序列长度的方法来解决,只不过这题子序列固定为了s,最后求出来的长度如果是s的长度那么就可以匹配,如...
思路:今天两题都挺简单的,思路就放在一起说了,不相交的线刚刚看题目会觉得挺麻烦的,没有什么思路,但是多手写几道例题,就会发现要实现不相交的线就是要找出两个数组中可非连续的相同...
思路:本题与上一题的唯一不同点在于本题的子序列是可以不连续的,而上一题的子序列必须是连续的,我们在上一题的推导过程中只对两边nums1[i-1]和nums2[j-1]的情况进...
思路 :子序列问题首先的大方向就是动态规划,本题有两个目标数组,要在其中找出两个数组 公共的 、长度最长的子数组的长度。所以我们在设置dp数组的时候,也应当设置二维的dp数组...
思路:同样我们设dp[i]为以下标i为结尾的数组的连续递增的子序列长度,而本题要求的最长递增子序列是连续的,也就是说dp[i+1]只由dp[i]推导而出,不用在推导的时候考虑...