本文介绍: 在Java中,优先队列(PriorityQueue)是一种特殊的队列,它可以确保队列中元素的顺序是按照它们的优先级进行排列的数据结构。在优先队列中,具有较高优先级的元素会先被处理,而具有较低优先级的元素会被放置在队列的尾部。每次选择完一个业务,可用资金都会变动,这是可选择的业务也会变化,因此每次将可选择的业务放在一个优先队列(大顶堆)中,堆顶元素就是目标业务。中,当传入比较器时,它将根据比较器所定义的规则对集合中的元素进行排序。整体思想:在满足可用资金的情况下,选择其中利润最大的业务,直到选到。
整体思想:在满足可用资金的情况下,选择其中利润最大的业务,直到选到k
个业务为止,注意k
可能比n
大。
每次选择完一个业务,可用资金都会变动,这是可选择的业务也会变化,因此每次将可选择的业务放在一个优先队列(大顶堆)中,堆顶元素就是目标业务。
优先队列(堆)的实现方式:优先队列,自定义比较器。
另外注意,将业务根据所需资金capacity
进行升序排列,达到一种剪枝的目的。
拓展:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。