当前位置: 首页 > news >正文

我要建个人网站cms影视源码采集

我要建个人网站,cms影视源码采集,网站建设pdf微盘,谷歌账号注册入口官网整体思想:在满足可用资金的情况下,选择其中利润最大的业务,直到选到k个业务为止,注意k可能比n大。 每次选择完一个业务,可用资金都会变动,这是可选择的业务也会变化,因此每次将可选择的业务放在…

整体思想:在满足可用资金的情况下,选择其中利润最大的业务,直到选到k个业务为止,注意k可能比n大。

每次选择完一个业务,可用资金都会变动,这是可选择的业务也会变化,因此每次将可选择的业务放在一个优先队列(大顶堆)中,堆顶元素就是目标业务。

优先队列(堆)的实现方式:优先队列,自定义比较器。

另外注意,将业务根据所需资金capacity进行升序排列,达到一种剪枝的目的。

class Solution {public int findMaximizedCapital(int k, int w, int[] profits, int[] capital) {int n = profits.length;List<int[]> list = new ArrayList<>();for (int i = 0; i < n; ++i) {list.add(new int[] {capital[i], profits[i]});}Collections.sort(list, (a, b) -> a[0] - b[0]);PriorityQueue<Integer> q = new PriorityQueue<>((a, b) -> b - a);int i = 0;while (k-- > 0) {while (i < n && list.get(i)[0] <= w) q.add(list.get(i++)[1]);if (q.isEmpty()) break;w += q.poll();}return w;}
}

拓展:

  1. 优先队列

    在Java中,优先队列(PriorityQueue)是一种特殊的队列,它可以确保队列中元素的顺序是按照它们的优先级进行排列的数据结构。在优先队列中,具有较高优先级的元素会先被处理,而具有较低优先级的元素会被放置在队列的尾部。

    优先队列可以用于许多应用,比如任务调度、事件模拟等。在Java中,优先队列通常是基于堆(Heap)实现的,这意味着它可以高效地支持插入和删除具有最高(或最低)优先级的元素。

    import java.util.PriorityQueue;  public class Main {  public static void main(String[] args) {  // 创建一个优先队列  PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();  // 向优先队列中添加元素  priorityQueue.add(3);  priorityQueue.add(1);  priorityQueue.add(2);  // 输出队列中的元素(按照优先级顺序)  while (!priorityQueue.isEmpty()) {  System.out.println(priorityQueue.poll());  }  }  
    }  
    

    需要注意的是,当元素被添加到优先队列中时,它们会根据其自然顺序或者根据提供的比较器进行排序。默认情况下,优先队列会按照元素的自然顺序进行排序,但也可以通过提供自定义的比较器来改变排序规则。

  2. 比较器

    在Java中,Collections.sort 方法用于对集合进行排序。它可以接受一个比较器(Comparator)作为第二个参数,以便根据指定的比较规则对集合中的元素进行排序。

    比较器是一个接口,它定义了用于比较两个对象顺序的规则。在Collections.sort中,当传入比较器时,它将根据比较器所定义的规则对集合中的元素进行排序。

    具体来说,比较器的定义如下:

    public interface Comparator<T> {int compare(T o1, T o2);
    }
    

    这个接口中的 compare 方法接受两个参数 o1o2,分别代表要比较的两个对象。在这个方法中,需要定义比较规则,返回一个负整数、零或者正整数,分别表示第一个参数小于、等于或大于第二个参数。

    在实际使用中,可以通过创建实现了Comparator接口的类,或者使用Lambda表达式来定义比较器。比如:

    List<Integer> numbers = Arrays.asList(3, 1, 2);
    Collections.sort(numbers, (a, b) -> a - b);
    

    在这个例子中,(a, b) -> a - b 就是一个比较器,它定义了对整数列表进行升序排序的规则。具体来说,它告诉Collections.sort方法按照元素的大小进行排序。

    总之,比较器允许我们根据特定的规则对集合中的元素进行排序,从而满足不同的排序需求。

http://www.yayakq.cn/news/317549/

相关文章:

  • 九江做网站开发需要多少钱长沙县好的建站按效果付费
  • 网站有什么类型广告设计与制作工资一般多少
  • 网站制作文章铜陵网站建设
  • 西安网站建设有限公司遵义门户网站
  • 沧州网站建设 网络服务建设工程教育网建设工程类的考试辅导网站
  • 快速网站建设陕西住房建设部网站
  • 网站建设验收表做个app要多少费用
  • APP网站建设什么用处电子书网站 跟我学做家常菜800
  • 建站价格会差成都网络推广优化
  • 途牛 招聘 网站开发装饰设计做什么的
  • 盐城网站开发厂商北京市教学名师奖建设项目网站
  • 淄博网站开发网泰快网站留言板html模板
  • 定制开发一个网站多少钱岳塘区建设路街道网站
  • 杭州建网站的公司办公室装修风格效果图
  • 网站建设林晓东网站怎么做镜像
  • 虚拟钱包对接网站开发视频教程cc后缀网站
  • 网站名称和备案扬州市建设局网站
  • 南通宏仁建设工程有限公司招聘网站公司介绍ppt范例
  • 佛山网站建设哪家便宜双语网站建设公司
  • 中山建网站报价wordpress 动态链接
  • c2c网站设计设计师可以做兼职的网站
  • 城阳做网站找哪家好关于网站建设的意见
  • 南通网站定制企业本网站立足于海外服务器
  • 网站建设年度计划网站没备案怎么做加速
  • 手机移动端网站建设深圳市科技网站开发
  • 大连网站设计布局中山网站设计与建设
  • 自己怎么做装修网站自己做网站如何挣钱
  • 中企动力 做网站 怎么样专业的seo排名优化
  • 搜索引擎主题网站模板万网做网站顺序
  • 做网站需要注意什么问题百度网站官网