60 贪心算法解优势洗牌-田忌赛马问题

问题描述:给定两个大小相等的数组A和B,A相对于B的优势是A[i]>B[i]的缩影数目来确定,返回A的序列,使得其相对于B的优势最大化。

贪心算法求解:如果当前田即最快的马没有其最快的马快,那就用田最慢的马与其赛马,如果比他快,就用最快的马进行比赛,因为需要和齐王最快的马进行比较,从而使用最大堆进行进行装齐王的马,每次弹出一个和田ji的马进行对比,且在最大堆中需要存放马的位置,从而可根据位置进行结果的更新。

java 复制代码
public int[] saima(int []A,int []B)
{
int left=0;
int right=A.length-1;
Arrays.sort(A);
int []res=new int[A.length];
PriorityQueue<int[]>maxheap=new PriorityQueue<>((a,b)->b[0]-a[0]);
for(int i=0;i<B.length;i++)
{
int []temp=maxheap.poll();
if(temp[0]>A[A.length-1])
{
res[temp[1]]=left;
left++;
}else
{
res[temp[1]]=right;
right--;
}
}
return res;
}
相关推荐
意法半导体STM32几秒前
【官方原创】STM32H7双核芯片通过 STlink连接失败问题分析 LAT1654
开发语言·前端·javascript·stm32·单片机·嵌入式硬件
小王C语言1 分钟前
【基础IO】————简单设计一下libc库
前端·数据结构·算法
亦复何言??2 分钟前
BeyondMimic 论文解析
人工智能·算法·机器人
深蓝海拓3 分钟前
使用@property将类方法包装为属性
开发语言·python
WolfGang0073216 分钟前
代码随想录算法训练营 Day20 | 回溯算法 part02
算法
YXXY3138 分钟前
前缀和算法
算法
客卿1239 分钟前
滑动窗口--模板
java·算法
xiaoye-duck17 分钟前
【C++:unordered_set和unordered_map】 深度解析:使用、差异、性能与场景选择
开发语言·c++·stl
_日拱一卒27 分钟前
LeetCode:滑动窗口的最大值
数据结构·算法·leetcode
zjjsctcdl32 分钟前
java与mysql连接 使用mysql-connector-java连接msql
java·开发语言·mysql