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;
}
相关推荐
谷哥的小弟20 分钟前
Spring Framework源码解析——ApplicationContextException
java·spring·源码
学到头秃的suhian23 分钟前
Springboot进阶知识
java·spring boot·spring
你想知道什么?24 分钟前
JNI简单学习(java调用C/C++)
java·c语言·学习
期待のcode25 分钟前
Thymeleaf模板引擎
java·html·springboot
白宇横流学长29 分钟前
基于SpringBoot实现的电子发票管理系统
java·spring boot·后端
白宇横流学长31 分钟前
基于SpringBoot实现的智慧就业管理系统
java·spring boot·后端
TL滕34 分钟前
从0开始学算法——第十二天(KMP算法练习)
笔记·学习·算法
weixin_4624462336 分钟前
EasyExcel 动态修改模板 Sheet 名称:自定义 SheetWriteHandler 拦截器
java·开发语言·easyexcel
Math_teacher_fan38 分钟前
第二篇:核心几何工具类详解
人工智能·算法
汉克老师39 分钟前
CCF-NOI2025第二试题目与解析(第二题、集合(set))
c++·算法·noi·子集卷积·sos dp·mod 异常