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;
}
相关推荐
TT哇4 分钟前
【多线程案例】:单例模式
java·单例模式·面试
往事随风去9 分钟前
Redis的内存淘汰策略(Eviction Policies)有哪些?
redis·后端·算法
秦禹辰17 分钟前
宝塔面板安装MySQL数据库并通过内网穿透工具实现公网远程访问
开发语言·后端·golang
黄焖鸡能干四碗23 分钟前
智慧教育,智慧校园,智慧安防学校建设解决方案(PPT+WORD)
java·大数据·开发语言·数据库·人工智能
神里流~霜灭30 分钟前
(C++)数据结构初阶(顺序表的实现)
linux·c语言·数据结构·c++·算法·顺序表·单链表
lssjzmn31 分钟前
Spring Web 异步响应实战:从 CompletableFuture 到 ResponseBodyEmitter 的全链路优化
java·前端·后端·springboot·异步·接口优化
new_daimond44 分钟前
二级缓存在实际项目中的应用
java
一只乔哇噻1 小时前
java后端工程师进修ing(研一版 || day41)
java·开发语言·学习·算法
愚润求学1 小时前
【贪心算法】day7
c++·算法·leetcode·贪心算法
钮钴禄·爱因斯晨1 小时前
深入剖析LLM:从原理到应用与挑战
开发语言·人工智能