正序贪心,如果某个点可以跳到最后,那么它左边的点一定可以 // 倒序贪心 class Solution { public boolean canJump(int[] nums) { if (nums == null) return false; int endReachable = nums.length - 1; for (int i = nums.length - 1; i >= 0; i--){ if(nums[i] + i >= endReachable){...
这题相较上一题比较难看出是二分+贪心,一开始肯定认为是直接算每个物品的平均价值,然后贪心就行,但是从样例可以看出显然是不对的。这题比较的是v[i]-x*w[i]求和的值和0(可以通过数学推导得出),注意题目保留的两位小数,结束二分的条件差小于0.01就行了(保险起见小于了0.001)。 #include<cstdio>#include<iost...
思路:emmm,还没学动态规划,就看了一下官方思路写了一下,贪心和二分查找,二分查找主要用于优化速率。用一个dp数组保存最长子序列,从第一个数据开始,如果第二个数据比第一个数据小,如果大,就直接放到后边,然后第二个数据就顶替第一个数据,如果后边有数据,在dp数组中间,则这个数据就直接把刚好比它大的那个数据顶...
但是可以看到,动态规划的时间复杂度是 O(N^2),因此我们希望换种思路,将时间复杂度变成 O(NlogN),那就是第二种思路:贪心 + 二分查找法: 维护一个数组(即最长上升子序列),如果我们要使上升子序列尽可能的长,则我们需要序列上升得尽可能慢。因此,我们希望每次在上升子序列最后加上的那个数尽可能的小。假设数...
LeetCode 870. 优势洗牌(贪心 & 二分查找) 1. 题目 给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述。 返回A 的任意排列,使其相对于 B 的优势最大化。 代码语言:javascript 复制 示例1:...
2.2 优先队列+贪心 1. 题目 给你一个整数数组 heights ,表示建筑物的高度。另有一些砖块 bricks 和梯子 ladders 。 你从建筑物 0 开始旅程,不断向后面的建筑物移动,期间可能会用到砖块或梯子。 当从建筑物 i 移动到建筑物 i+1(下标 从 0 开始 )时: ...
贪心、模拟 2600. 质数减法运算(Medium) 题解一:暴力枚举 + 二分查找 题解二:Eratosthenes 埃氏筛 + 二分查找 题解三:Euler 欧氏线性筛 + 二分查找 2601. 使数组元素全部相等的最少操作次数 前缀和 + 二分查找 2602. 收集树中金币(Hard) 拓扑排序 + 模拟 ...
一个二分查找算法和贪心算法结合的场景 之所以写这个,是因为我前两周在参加 LeetCode 周赛的时候,题目具体如下: 1648. 销售价值减少的颜色球 你有一些球的库存 inventory ,里面包含着不同颜色的球。一个顾客想要任意颜色总数为 orders 的球。 这位顾客有一种特殊的方式衡量球的价值:每个球的价值是目前剩下的同...
。首先贪心放置盒子使接触地面的盒子数量最小的情况下,放置更多的盒子 局部最优:每次放置盒子优先放置在顶部,顶部不能放置再放在底部 全局最优:接触地面的盒子数量最小的情况下,放置最多的盒子 。按照此种方式放置盒子的话,每层能够放置的盒子存在特殊规律: ...
检查的过程就是采用贪心法,假设x可以满足条件,每个店都分配最大的商品(假设值),这样分配的店数一定是最少的。 Java代码 由于题解比较简单,关键是想到要使用二分查找,我们直接看代码。 classSolution{publicintminimizedMaximum(intn,int[]quantities){intleft=1;intright=Arrays.stream(quantities).max().getAsInt...