给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述。

返回 A 的任意排列,使其相对于 B 的优势最大化。

示例 1:

输入:A = [2,7,11,15], B = [1,10,4,11]
输出:[2,11,7,15]

代码

class Solution {public int[] advantageCount(int[] A, int[] B) {PriorityQueue<int[]> priorityQueue=new PriorityQueue<>((o1, o2) -> o1[0]-o2[0]);int[] res=new int[A.length];Arrays.fill(res,-1);Arrays.sort(A);int idx=0;for(int i=0;i<B.length;i++) priorityQueue.add(new int[]{B[i],i});//将b中元素加入优先队列while (!priorityQueue.isEmpty()){int[] temp=priorityQueue.poll();while (idx<A.length&&A[idx]<=temp[0]) idx++;//在a中查找大于当前元素的数字if(idx==A.length) break;//数组a遍历完了res[temp[1]]=A[idx];A[idx]=-1;//标记已经确定了的a中元素}idx=0;for(int i=0;i<A.length;i++)//将没有位置放的a中数字塞进结果{if(res[i]==-1){while (idx<A.length&&A[idx]==-1) idx++;res[i]=A[idx];A[idx]=-1;}}return res;}
}

leetcode870. 优势洗牌(贪心算法)相关推荐

  1. Leetcode--870. 优势洗牌

    给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述. 返回 A 的任意排列,使其相对于 B 的优势最大化. 示例 1: 输入: ...

  2. LeetCode 0870. 优势洗牌 - 【LetMeFly】趣解田忌赛马:能赢则赢,否则摆烂(贪心)

    [LetMeFly]趣解田忌赛马:能赢则赢,否则摆烂(贪心) - 870.优势洗牌 力扣题目链接:https://leetcode.cn/problems/advantage-shuffle/ 给定两 ...

  3. 使用随机数实现扑克牌洗牌的算法(弱智版)

    最近刷leetCood有点着魔了,突然想写一个扑克牌洗牌的实现方式. 大脑中第一印象就是用随机数来实现: 1)随机数范围为1-54 2)建立一个集合来存放随机生成的数 3)新随机出来的数如果该集合有, ...

  4. LeetCode 870. 优势洗牌(贪心 二分查找)

    1. 题目 给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述. 返回 A 的任意排列,使其相对于 B 的优势最大化. 示例 ...

  5. LeetCode打卡:870.优势洗牌

    给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述. 返回 A 的任意排列,使其相对于 B 的优势最大化. 示例 1: 输入: ...

  6. LeetCode 870. 优势洗牌(田忌赛马问题)

    截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载 下载链接:https://pan.baidu.com/s/1hj ...

  7. leetcode 870.优势洗牌

    请输入代码给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述. 返回 A 的任意排列,使其相对于 B 的优势最大化. 示例 1 ...

  8. 数组洗牌算法-shuffle

    数组洗牌,最近直接的想法是从数组随机取出一个元素,放到另一个数组中,但是这样取出的元素会有重复,必须采取一定的方法保证: 1. 元素不能重复 2. 元素被抽取的概率相等,即随机性 数组洗牌经典算法有两 ...

  9. java collections_扫盲java.util.Collections工具包,学习排序、二分、洗牌、旋转算法

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 算法是数据结构的灵魂! 好的算法搭配上合适的数据结构,可以让代码功能大大的提升效率. ...

最新文章

  1. ssh在dhcp自动获取地址的时候使用
  2. 如何限制创建子网站时只能使用指定的模板
  3. Codeforces Round #530 (Div. 2)
  4. 【python笔记】选择结构:if语句详解
  5. 嵌入式开发与C++开发的区别是什么?
  6. 快速提取PPT文件里面的视频、音频素材
  7. gridview textbox onblur触发按钮_按钮式的密封罐,人手一个都嫌少!
  8. 13、ARM嵌入式系统:通过旋钮控制蜂鸣器声音大小
  9. ODAC Windows 安装
  10. php 正则 tr,js正则匹配table tr
  11. python字典第一个元素_如何获取python字典中的第一个值
  12. 2560x1600分辨率高吗_2560x1600是多大尺寸的屏幕
  13. Java ArrayList add()方法与示例
  14. 14-用Python 读写 Excel 文件
  15. 关于Python虚拟环境与包管理你应该知道的事
  16. GDOI2018爆炸记
  17. 深度特征融合---高低层(多尺度)特征融合
  18. 简单手绘创意思维导图,思维导图软件
  19. UVA10815-Andy's First Dictionary 【set】
  20. 突然被录取?多所院校发布研究生补录通知!

热门文章

  1. C语言写数据库(二)
  2. Linux网络编程目录
  3. 一个C++程序执行main函数前和执行完main函数后会发生什么。
  4. 线程控制 12 | 线程属性
  5. open函数和errno全局变量
  6. Java开发热门前沿知识!成功从小公司跳槽进蚂蚁定级P6
  7. CSS清除默认样式,技术详细介绍
  8. 程序员如何自我学习和成长?深度好文
  9. Django Rest Framework(一)
  10. UML 中extend和include的区别