57. 插入区间 这是因为新的区间[4,8]与[3,5],[6,7],[8,10]重叠。升序排列,且区间之间不重叠(如果有必要的话,可以合并区间)。你可以创建一个新数组然后返回它。按照区间起始端点排序的区间列表。表示另一个区间的开始和结束。个区间的开始和结束,并且。
120. 三角形最小路径和 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。也就是说,如果正位于当前行的下标。每一步只能移动到下一行中相邻的结点上。,那么下一步可以移动到下一行的下标。,找出自顶向下的最小路径和。
129. 求根节点到叶节点数字之和 因此,数字总和 = 495 + 491 + 40 =因此,数字总和 = 12 + 13 =,树中每个节点都存放有一个。计算从根节点到叶节点生成的。给你一个二叉树的根节点。是指没有子节点的节点。
347. 前 K 个高频元素 思路:统计每个元素出现次数,然后排序,最后输出前k个。很多人会想用字典统计次数,但字典是无序的,你还得先对字典按值进行排序,python提供了一个Counter函数,他会统计一个列表中各个元素出现的次数,并返回一个元组,然后利用most_common函数,它会按照出现频率降序返回一个元组,,请你返回其中出现频率前。
239. 滑动窗口最大值 思路:这道题的暴力解法不难想,每k个元素把最大值放入result,但当k很大的时候,这种方法就会超时了。的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。那怎么做不超时呢,也就是得把时间复杂度减小到O(n)数量级上。滑动窗口的位置 最大值。滑动窗口每次只向右移动一位。
150. 逆波兰表达式求值 该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。返回一个表示表达式值的整数。
15. 三数之和 不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,判断是否存在三元组。
503. 下一个更大元素 II 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。第二个 1 的下一个最大的数需要循环搜索,结果也是 2。第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;
496. 下一个更大元素 I 2 ,用加粗斜体标识,nums2 = [1,3,4,- 4 ,用加粗斜体标识,nums2 = [1,2,3,如果不存在下一个更大元素,那么本次查询的答案是。- 4 ,用加粗斜体标识,nums2 = [1,3,不存在下一个更大元素,所以答案是 -1。- 2 ,用加粗斜体标识,nums2 = [1,不存在下一个更大元素,所以答案是 -1。不存在下一个更大元素,所以答案是 -1。- 1 ,用加粗斜体标识,nums2 = [下一个更大元素是 3。下一个更大元素是 3。
647. 回文子串 6个回文子串: "a", "a", "a", "aa", "aa", "aaa"三个回文子串: "a", "b", "c"是字符串中的由连续字符组成的一个序列。是正着读和倒过来读一样的字符串。,请你统计并返回这个字符串中。
674. 最长连续递增序列 然后递推公式:因为要连续递增,因此每个数要和前一个数进行比较,如果当前数大于前一个数,那最长递增子序列+1,更新dp[i]的值,dp[i] = max(dp[i],dp[i-1]+1), 否则,当前数小于前一个数了,递增中断了,不是连续了,那就不用更新dp[i]的值。然后是初始化,我们可以看到每个i都依赖i-1的值,因此我们需要初始化dp[0],因为递增子序列最短也会是1,也就是每个数自己,所以初始化为1。首先明确dp[i]的含义,dp[i]代表以nums[i]结尾的最长连续递增子序列的长度。
714. 买卖股票的最佳时机含手续费 你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。总利润: ((8 - 1) - 2) + ((9 - 4) - 2) = 8。在此处买入 prices[0] = 1。在此处卖出 prices[3] = 8。在此处买入 prices[4] = 4。在此处卖出 prices[5] = 9。代表了交易股票的手续费用。返回获得利润的最大值。