田忌赛马Java

news2024/12/24 8:51:26

给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 Ai] > Bi] 的索的数目来描述。
返回 A的任意排列,使其相对于 B 的优势最大化.

其实核心思想就是让A中的数最小且刚好大于B中数,我们可以用链表来存储A和B中对应的数据,至于B比A中所有的数都大的数据,则匹配我们A中剩余的数字即可(随意匹配即可).

下面是具体实现的代码:

package test;

import java.util.*;

public class Algorithm {
    public static void main(String[] args) {
        int[] advantage = advantage(new int[]{9, 17, 19, 11, 13, 14}, new int[]{21, 10, 16, 20, 16, 12});
        System.out.println("田忌赛马结果是:" +Arrays.toString(advantage));
    }

    //田忌赛马
    public static int[] advantage(int[] A, int[] B) {
        int[] bclone = B.clone();
        Arrays.sort(bclone);
        Arrays.sort(A);
        Map<Integer, Deque<Integer>> bMap = new HashMap<>();
        for (int b : B) {
            bMap.put(b, new LinkedList<>());
        }
        Deque<Integer> aDeque = new LinkedList<>();
        int j = 0;
        for (int a : A) {
            if (a > bclone[j]) {
                bMap.get(bclone[j]).add(a);
                j++;
            } else {
                aDeque.add(a);
            }
        }
        int[] ans = new int[A.length];
        for (int i = 0; i < B.length; i++) {
            if (bMap.get(B[i]).size() > 0) {
                ans[i] = bMap.get(B[i]).removeLast();
            } else {
                ans[i] = aDeque.removeLast();
            }
        }
        return ans;
    }

}

输出结果:田忌赛马结果是:[14, 11, 19, 9, 17, 13]

【力扣算法题】优势洗牌(田忌赛马)-贪心_哔哩哔哩_bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1041592.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

优优嗨聚集团:餐饮发展与房地产的关联:一种强效应的探索

随着时代的进步和经济的发展&#xff0c;餐饮业和房地产行业已成为人们日常生活中的重要组成部分。这两个行业之间存在着复杂的联系&#xff0c;它们相互影响、相互促进&#xff0c;形成了独特的经济现象。本文将从多个角度分析餐饮发展与房地产之间的关联&#xff0c;并探讨这…

苹果Vision Pro头显内置AI芯片

苹果首席执行官蒂姆库克近日在接受采访时确认&#xff0c;备受瞩目的Vision Pro头显将按计划于明年初在美国上市。这款头显被认为是苹果自iPhone以来最重要的产品之一&#xff0c;售价高达3499美元。 蒂姆库克在接受CBS Sunday Morning的采访时透露&#xff0c;他的团队对Visi…

一、浏览器输入URL会发生什么

参考链接&#xff1a;B站视频链接&#xff1a;https://www.bilibili.com/video/BV1qL411G7uj/ 本视频讲述了HTTP协议及其工作原理&#xff0c;包括HTTP协议的三次握手建立TCP连接、HTTP请求报文、HTTP响应报文等。同时&#xff0c;本视频还介绍了浏览器解析域名并建立TCP连接的…

Failed to load property source from location ‘classpath:/application.yml‘

前言 给同学部署项目的时候出现了这个错误&#xff0c;困扰我半天&#xff0c;搞了一下午&#xff0c;最后Google找到了答案。 在这里记录一下&#xff01; 解决方案 第一步&#xff1a;删除原有yml文件&#xff0c;把内容复制下来&#xff0c;重新写一个然后再粘贴进去 …

基于微信小程序的车位预定系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言用户的主要功能有&#xff1a;管理员的主要功能有&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W…

96.不同的二叉搜索树

​ 题目&#xff1a; 96. 不同的二叉搜索树 中等 2.4K 相关企业 给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xf…

debian设置允许root登录

新debian安装后默认不能使用root登录&#xff0c;下文给出解决办法。 备份此文件 cp /etc/gdm3/daemon.conf /etc/gdm3/daemon.conf.bk 修改 /etc/gdm3/daemon.conf&#xff0c;在[security]下面新增AllowRoot true 保存。接着修改 /etc/pam.d/gdm-password 文件&#xff0…

Feign 使用篇

Feign是一个声明式的HTTP客户端工具&#xff0c;它简化了在分布式系统中进行服务间通信的过程。开发人员可以使用Feign来定义接口&#xff0c;然后通过该接口来调用远程服务&#xff0c;就像调用本地方法一样简单。 目录 Feign的一些关键特性和概念&#xff1a;openfeign 对比 …

算法:O(1) 时间插入、删除和获取随机元素---哈希表+动态数组

1、题目&#xff1a; 实现RandomizedSet 类&#xff1a; RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时&#xff0c;向集合中插入该项&#xff0c;并返回 true &#xff1b;否则&#xff0c;返回 false 。bool remove(int val) 当元素…

基于jquery开发的Windows 12网页版

预览 https://win12.gitapp.cn 首页代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"refresh" content"0;urldesktop.html" /> <meta name"viewport&…

上海亚商投顾:沪指放量涨1.55% AI概念股全线爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数9月22日放量反弹&#xff0c;沪指午后涨超1%&#xff0c;重返3100点上方&#xff0c;创业板指涨超2%…

通过monorepo管理多个子项目

通过monorepo管理多个子项目 1. Monorepo模式 在Monorepo 模式下,根目录通常不建议直接安装依赖,而是通过工作区(workspaces)来管理依赖。 但是在一些情况下,在根目录安装一些共享依赖也是可以的。 在根目录安装开发相关的依赖 如TypeScript, ESLint, Jest等。这些可以被所有…

手把手教 - 开源库 libmodbus 的RTU-Master 的使用笔记

测试环境&#xff1a;基于nuc980开发板 Linux信息&#xff1a;Linux buildroot 4.4.289 #8 PREEMPT Thu Sep 21 14:29:45 CST 2023 armv5tejl GNU/Linux 目录&#xff1a; 一、libmodbus 库简介 二、下载链接 三、移植准备 四、移植过程和完整代码 五、测试结果 一、libmodbus …

虚拟机数据恢复:Stellar Data Recovery for Virtual Machine

虚拟机数据恢复-----Crack Version Stellar Data Recovery for Virtual Machine 软件可从 VMware (.vmdk)、ORACLE (.vdi) 和 Microsoft (.vhd) 虚拟映像文件中恢复丢失和删除的数据。 从 VMDK、VDI 和 VHD 虚拟映像文件中恢复数据提供原始恢复选项来恢复数据从已删除或无法识…

太阳能供电模块

基于Solar Cell的锂电池充放电模块 由于一些需求&#xff0c;最近做了一款基于太阳能的锂电池充放电模块。该模块能够利用太阳能为锂电池充电和为负载提供5V的电压&#xff0c;在太阳能不充足的条件下&#xff0c;由锂电池提供需要的能量。 主要思路是将太阳能板获得的能量存储…

嵌入式Linux学习(1)——通信总线协议简介

目录 一. UART 1.1 单工/双工通信 ​编辑 1.2 UART帧格式 1.2.1 Q/A 1.3 UART硬件结构 二. 基于UART的协议 2.1 RS232 2.1.1 RS232协议存在的问题 2.2 RS485 2.2.1 差分信号 2.2.2 RS485优势 三. IIC 3.1 通信过程 3.2 IIC总线寻址 3.3 IIC总线信号 3.3.1 起始…

USB转2路RS422串口

基于USB转2路串口芯片CH342&#xff0c;可以为各类主机扩展出2个独立的串口。CH342芯片支持使用操作系统内置的CDC串口驱动&#xff0c;也支持使用厂商提供的VCP串口驱动程序&#xff0c;可支持Windows、Linux、Android、macOS等操作系统。因CDC类协议和类驱动的原因&#xff0…

多通道振弦数据记录仪在预防地质灾害中的重要性

多通道振弦数据记录仪在预防地质灾害中的重要性 地质灾害是指在地表或岩体内部发生的、由地质原因引起的、对人类生命、财产和环境安全造成威胁或损害的各种灾害。地质灾害的预测和预防对于保障人民生命财产安全、维护社会稳定和可持续发展具有重要的意义。而多通道振弦数据记…

九章云极DataCanvas公司智算中心正式落地

为构建全社会数字经济提供高效的计算底座&#xff0c;向全市场提供高效高速的智算能力&#xff0c;为用户提供算法算力一体化的服务&#xff0c;九章云极DataCanvas公司智算中心落户安徽省马鞍山市&#xff0c;并于9月4日成功举行“马鞍山市花山区垂直行业人工智能大模型训练算…