C++Leetcode--1109. 航班预订统计

题目描述官方描述(中文)2021/08/31每日一题思路这道题目用到了前缀和+差分数组。差分数组介绍, 对于一个预定区间预定的座位数是相同的,也就是对于原数组[i, j]区间同时加预定座位数,而这个条件完美的符合了差分数组的作用。新建一个大小为n的数组A,数组内的数字都为0;求数组A的差分数组B,显


C++Leetcode--528. 按权重随机选择

题目描述官方描述(中文)2021/08/30每日一题思路说实话看到题,我毫无思路。。。只能去翻一下官方题解,官方题解。官方题解使用到了好几个非常不常用的stl类(至少对于我来说非常不常用,基本没用过。。。):mt19937 随机数类uniform_int_distribution均匀离散分布类ran


C++Leetcode--1588. 所有奇数长度子数组的和

题目描述官方描述(中文)2021/08/29每日一题思路三层暴力第一种暴力方法使用三层for循环进行结果求取。第一层:奇数子序列的第一个数字的位置第二层:奇数子序列最后一个数字的个数第三层:首部与尾部加和代码class Solution {public: int sumOddLengthSub


C++Leetcode--295. 数据流的中位数

题目描述官方描述(中文)2021/08/27思路用两个优先队列 queMax 和 queMin 分别记录大于中位数的数和小于等于中位数的数。当累计添加的数的数量为奇数时,queMin 中的数的数量比queMax 多一个,此时中位数为queMin 的队头。当累计添加的数的数量为偶数时,两个优先队列中的


C++Leetcode--881. 救生艇

题目描述官方描述(中文)2021/08/26每日一题思路排序+双指针原则优先让剩下的最轻和最重的同学组队,如果最轻的都不能和最重的组队,那最重的只能自己乘船。先把数组由大到小进行排序。定义两个指针i,j。分别指向队首和队尾。v[i]+v[j]有两种情况v[i]+v[j]<=limit.nice


C++Leetcode--787. K 站中转内最便宜的航班

题目描述官方描述(中文)2021/08/24每日一题思路深搜加记忆为了通过这个题我错了8次。。。开始对题意的理解不清楚导致多次提交出错。一开始只单纯使用深搜,不出意外超时了。之后开始考虑使用深搜加记忆,一开始使用单纯的一个map存储访问的节点key->站点id,value->由该点到达终


C++Leetcode--797. 所有可能的路径

所有可能的路径题目描述官方描述(中文)2021/08/25每日一题。代码菜鸡如我,只会无脑深搜。。。class Solution {public: void Dfs(vector<vector<int>>& graph, vector<vector<


C++Leetcode--31. 下一个排列

(31. 下一个排列)中文版本链接link思路:1.首先从右向左遍历列表,找到第一个下降的点即nums[i] < nums[i+1],这个i就是需要替换的位置。2.将i之后的点即[i+1, nums.size()-1]这个区间里的数倒序排列3.在[i+1, nums.size()-1]这个区间


C++Leetcode--329. 矩阵中的最长递增路径

329. 矩阵中的最长递增路径中文版本链接link思路:该题直接使用dfs会超时,我使用的是dfs+记忆的方法ac的。关键点在于对于已经遍历过的节点保存以其为根的最长增长路径,这样在再次访问到这个节点的时候就可以直接返回不需要再次求取了。class Solution {public: int