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;
}
相关推荐
西红市杰出青年几秒前
crawl4ai------AsyncPlaywrightCrawlerStrategy使用教程
开发语言·python·架构·正则表达式·pandas
进击的小菜鸡dd几秒前
互联网大厂Java面试:微服务、电商场景下的全栈技术问答与解析
java·spring boot·缓存·微服务·消息队列·日志·电商
星河耀银海1 分钟前
C++基础数据类型与变量管理:内存安全与高效代码的基石
java·开发语言·c++
sunnyday04263 分钟前
Spring Boot 应用启动成功后的事件监听与日志输出实践
java·spring boot·后端
Logan Lie4 分钟前
Go语言接口(interface)深度详解
开发语言·数据库·golang
jimy14 分钟前
消息队列Message Queue(MQ),队列链表(queue),消费者,生产者
数据结构·链表
小欣加油5 分钟前
leetcode 面试题17.16 按摩师
数据结构·c++·算法·leetcode·动态规划
予枫的编程笔记6 分钟前
【JDK版本】JDK版本迁移避坑指南:从8→17/21实操全解析
java·人工智能·jdk
独断万古他化6 分钟前
【MyBatis 深度解析】注解操作与 XML 配置:增删改查全流程实现
xml·java·spring·mybatis
西部风情6 分钟前
稳定性质量系列-系统稳定性建设实践
java·开发语言