- 博客(2)
- 收藏
- 关注
原创 [学习笔记] 贪心算法解释及几道Leetcode例题
贪心算法一般是通过一系列的局部最优解,从而保证能够得到全局最优的结果。例如,平时购物找零钱时,为使找回的零钱的硬币数最少,不要求找零钱的所有方案,而是从最大面值的币种开始,按递减的顺序考虑各面额,先尽量用大面值的面额,当不足大面值时才去考虑下一个较小面值,这就是贪心算法。 示例: 134 分发糖果 hard 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 评分更高的
2021-11-25 19:33:19 461
原创 java实现数据结构-堆
堆是一个完全二叉树,其中每个节点的值总是大于等于子节点的值。一般来说,我们用一个数组而不是用指针建立一个树。这是由于堆是完全二叉树,当数组表示时,位置i 的节点的父节点位置一定为i/2,而它的两个子节点的位置又一定分别为2i 和2i+1,因此可以很方便的进行上浮和下沉操作。 图1 堆(最大堆) 基于此,实现的代码如下: public class Heap<E extends ...
2021-11-13 15:07:42 438
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人