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

问题描述:给定两个大小相等的数组A和B,A相对于B的优势是Ai>Bi的缩影数目来确定,返回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;
}
相关推荐
熬夜苦读学习4 分钟前
Qt-- 系统相关
开发语言·qt
弹简特4 分钟前
【Java项目-企悦抽】11-用户与认证模块-实现用户登录03(结束登录功能)-完成测试+对接前端+登录拦截器
java·开发语言
haolin123.6 分钟前
类和对象(下)
c语言·开发语言·c++
皓月斯语15 分钟前
P5736 【深基7.例2】质数筛
c++·算法·题解
大模型丫丫32 分钟前
Loop Engineering:从强化学习视角看 Agent 循环的本质
java·人工智能·学习
数电发票API35 分钟前
税局接口,需要的来~~
java
骇客野人1 小时前
IntelliJ IDEA 使用技巧
java·ide·intellij-idea
大尚来也1 小时前
用 Python 自动整理文件、重命名、分类电脑文件夹
开发语言·python
CVer儿1 小时前
c++二级指针
开发语言·c++
Jul1en_1 小时前
【Java 脚手架】封装通用工具类-1
java·spring boot·分布式·spring·spring cloud