算法
文章平均质量分 51
as_sun
这个作者很懒,什么都没留下…
展开
-
二分模板及例题解析
思路:这道题求的是最大伤害的最小值,那么其实我们也可以进行二分,这个题的难点其实在check函数,我们可以参考bfs的写法,反正有四个方向,如果该位置的伤害大于我们此时的伤害,那么这个点就无法到达,最后如果可以到第n行那么就返回1,否则返回0;而且因为要求的是最大的值,所以当一个值可以后要考虑更大的行不行,这样l,r更新的方式也找到了。思路:对于这道题,要求的是|s-y|的最小值,显然不能对这个值进行二分,但是题目又说通过调整w的值,可发现w变大,y变小,w变小,y变大,也就可以二分w来实现。原创 2023-11-26 21:41:47 · 350 阅读 · 1 评论 -
快排找第k大的数
题目描述给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k个数。原创 2023-06-30 14:54:18 · 239 阅读 · 0 评论 -
区间贪心类题目思路
这个要按照左端点进行排序,然后记录每组的最右端点,需要用到一个小根堆,将每组的最右端点放入,针对每次访问到的区间,先将该区间的左端点与已分好组的最小的最右端点进行比较,如果小于等于这个的最小端点那么一定不可以放入,任何一个已经分好的区间(证明如下),就必须单独为它开一个新组,否则就可以将它放入已经分好的区间,如果可以放入多组中随便挑一组就好,这里我们将它放入第一组,再更新第一组的最右端点。-最大不相交区间的数量,也是先按照右端点进行排序,然后然后进行访问,找到不包含右端点的区间就更新答案。原创 2023-11-26 21:43:37 · 336 阅读 · 1 评论 -
求逆序对数量
给定一个长度为 n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j个元素,如果满足 ia[j],则其为一个逆序对;否则不是。原创 2023-06-30 15:12:40 · 189 阅读 · 0 评论 -
其他贪心问题
本题要求所有人等待和的最小值,为得到最优解就要将打水慢的放在后面。所以只用排序后再遍历计数即可。可以用不等式的方法证明贪心思路的正确性。本题实际上是求绝对值和的最小值。原创 2023-11-26 21:45:08 · 347 阅读 · 1 评论