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;
}
相关推荐
小徐Chao努力6 分钟前
【Langchain4j-Java AI开发】08-向量嵌入与向量数据库
java·数据库·人工智能
zyx没烦恼7 分钟前
YAML模块
开发语言·python
智航GIS11 分钟前
4.2 集合(Set)
开发语言·python
小白学大数据14 分钟前
利用 Selenium 与 BeautifulSoup 构建链家动态爬虫
开发语言·爬虫·selenium·beautifulsoup
qq_3771123714 分钟前
从零开始深入理解并发、线程与等待通知机制
java·开发语言
小徐Chao努力16 分钟前
【Langchain4j-Java AI开发】07-RAG 检索增强生成
java·人工智能·python
花哥码天下22 分钟前
修复Bash脚本Here Document错误
开发语言·bash
Rysxt_27 分钟前
UniApp uni_modules 文件夹详细教程
开发语言·javascript·ecmascript
JoannaJuanCV28 分钟前
自动驾驶—CARLA仿真(30)交通管理器(Traffic Manager)
java·redis·自动驾驶
Wang's Blog43 分钟前
Lua: 核心机制解析之函数的多维魔法与模块化封装艺术
开发语言·lua