![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
8.30第三周
文章平均质量分 53
zzh123353
越努力越幸运
展开
-
LeerCode贪心
题目给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。题解 贪心先对数据进行排序,设置一个end结点;如果下一个区间的第一个值小于当前end,说明两区间一定有交集,此时ans + 1,同时尽可能地让end小,才能最少的与下一些序列重叠;如果下一个区间的第一个值大于end,说明两段没有交集,此时更新end为这个区间的末尾值。完整代码:class Solutio原创 2021-09-05 22:57:51 · 55 阅读 · 0 评论 -
LeetCode好叶子结点的数量
好叶子结点的数量给你二叉树的根节点 root 和一个整数 distance 。如果二叉树中两个 叶 节点之间的 最短路径长度 小于或者等于 distance ,那它们就可以构成一组 好叶子节点对 。返回树中 好叶子节点对的数量 。题解 递归建立两个容器left,right分别记录以该root为根节点的深度值,如果其中得到的值l+r<=distance就是一对好节点! res += countPairs(root->left, distance); res += countPa原创 2021-09-02 16:55:00 · 87 阅读 · 0 评论 -
根据身高重建队列
根据身高重建队列假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。。题解 先排序再建立队列思路解题过程:先对原创 2021-08-31 10:52:17 · 59 阅读 · 0 评论 -
分割等和子集
分割等和子集给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。题解 动态规划如果可以等分成两个和相同的子集,总和一定是偶数,可以根据这一性质作为条件对一部分进行判断返回;建立一个布尔类型的dp容器,其中dp[i]中的值表示dp[i]是否存在子集的和为i,最后返回dp[sum / 2]里面的值即可;先对num[0]进行判断,如果小于等于目标值,则dp[nums[0]] = true;在循环的时候利用利用dp[j] = dp[j]原创 2021-08-30 16:54:23 · 123 阅读 · 0 评论 -
拓扑排序及课程表问题
拓扑排序概念对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。例子 计算机专业上课拓扑序:如果图中从v到w有一条有向路径,则v一定排在w之前,满足此条件的顶原创 2021-08-30 10:14:09 · 279 阅读 · 0 评论