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;
}
相关推荐
ShineWinsu10 小时前
对于数据结构:链式二叉树的超详细保姆级解析—中
数据结构·c++·算法·面试·二叉树·校招·递归
仟濹10 小时前
【Java 基础】3 面向对象 - this
java·开发语言·python
Dxy123931021610 小时前
Python一个类的特殊方法有哪些
开发语言·python
合方圆~小文10 小时前
高性能20倍变焦球机转动功能监控设备
数据结构·数据库·数码相机·模块测试
百***355110 小时前
什么是Spring Boot 应用开发?
java·spring boot·后端
爱吃烤鸡翅的酸菜鱼10 小时前
如何用【rust】做一个命令行版的电子辞典
开发语言·rust
野蛮人6号10 小时前
力扣热题100道之207课程表
算法·leetcode·职场和发展
这周也會开心10 小时前
Map的遍历方式
数据结构·算法
不爱学英文的码字机器10 小时前
Rust 并发实战:使用 Tokio 构建高性能异步 TCP 聊天室
开发语言·tcp/ip·rust
liu****10 小时前
20.传输层协议TCP
服务器·网络·数据结构·c++·网络协议·tcp/ip·udp