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;
}
相关推荐
小旭9527几秒前
SpringBoot + 七牛云 + Quartz:图片存储与定时清理
java·spring boot·后端·mybatis
lixinnnn.15 分钟前
多源BFS:刺杀大使
算法·宽度优先
萝卜白菜。23 分钟前
TongWeb8.0 JNDI缓存
开发语言·python·缓存
XMYX-033 分钟前
03 - Go 常用类型速查表 + 实战建议(实战向)
开发语言·golang
爱码驱动33 分钟前
Java多线程详解(5)
java·开发语言·多线程
橘子编程38 分钟前
计算机内存与缓存完全指南
java·计算机网络·spring·缓存
杰克尼38 分钟前
springCloud(day09-Elasticsearch02)
java·后端·spring·spring cloud
AI成长日志40 分钟前
【笔面试算法学习专栏】堆与优先队列实战:力扣hot100之215.数组中的第K个最大元素、347.前K个高频元素
学习·算法·leetcode
@atweiwei43 分钟前
用 Rust 构建 LLM 应用的高性能框架
开发语言·后端·ai·rust·langchain·llm
云烟成雨TD43 分钟前
Spring AI 1.x 系列【24】结构化输出 API
java·人工智能·spring