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;
}
相关推荐
m0_5312371715 小时前
C语言-变量,枚举常量,字符串,打印类型,转义字符
c语言·数据结构·算法
张3蜂15 小时前
Python venv 详解:为什么要用、怎么用、怎么用好
开发语言·python
zyeyeye15 小时前
自定义类型:结构体
c语言·开发语言·数据结构·c++·算法
火龙果研究院15 小时前
在CentOS上安装Python 3.13需要从源码编译
开发语言·python·centos
俩娃妈教编程15 小时前
2023 年 03 月 二级真题(1)--画三角形
c++·算法·双层循环
invicinble15 小时前
关于学习技术栈的思考
java·开发语言·学习
龙山云仓15 小时前
No156:AI中国故事-对话司马迁——史家绝唱与AI记忆:时间叙事与因果之链
大数据·开发语言·人工智能·python·机器学习
niuniudengdeng15 小时前
一种基于高维物理张量与XRF实景复刻的一步闭式解工业级3D打印品生成模型
人工智能·python·数学·算法·3d
航哥的女人15 小时前
C++文件操作
开发语言·c++
哈库纳玛塔塔15 小时前
公元前日期处理的两种方案
数据库·算法·mybatis