贪心
Rutifrl
这个作者很懒,什么都没留下…
展开
-
45. 跳跃游戏 II(hard)
对于每个当前位置而言,如果不是末尾,都是要跳到下一个位置的,每个位置上能到达的最远的右界限是不一样的。那么,在跳的过程中,在当前位置更新这个最远的右界限next,一旦next大于长度,那么就可以在当前跳到末尾,cur表示当前可以跳到的最大长度,注意在跳到cur时更新step,如果在这个过程发现有next大于长度,那么step+1,表示跳到那个位置再跳一次就可以跳到最后一个位置了 否则,跳到cur位置时,令cur=next,表示下一次跳跃能到达的最远的位置 class Solution { public原创 2020-10-28 15:20:59 · 101 阅读 · 0 评论 -
968. 监控二叉树(hard)
给定一个二叉树,我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 输入:[0,0,null,0,0] 输出:1 解释:如图所示,一台摄像头足以监控所有节点。 贪心+dp,贪心的情况是,叶子节点的父节点装摄像头是数量最少的,状态有三种: 0,本节点无覆盖 1,本节点有摄像头 2。本节点有覆盖 空节点的状态只能是有覆盖 四类情况: 1.左右节点都有覆盖(不需要相机) 2.左右节点至少有一...原创 2020-10-25 12:46:34 · 99 阅读 · 0 评论 -
870. 优势洗牌
给定两个大小相等的数组A和B,A 相对于 B 的优势可以用满足A[i] > B[i]的索引 i的数目来描述。 返回A的任意排列,使其相对于 B的优势最大化。 示例 1: 输入:A = [2,7,11,15], B = [1,10,4,11] 输出:[2,11,7,15] /* 贪心,要使A[i]>B[i]的数目尽量多,遍历B的时候,用最小的大于B[i]的A[i]对上 */ class Solution { public: vector<int>...原创 2020-10-24 00:32:01 · 80 阅读 · 0 评论