当前位置: 首页 > article >正文

力扣labuladong一刷day25天

力扣labuladong一刷day24天

一、870. 优势洗牌

题目链接:https://leetcode.cn/problems/advantage-shuffle/
思路:这个就和田忌赛马是一样的,要求nums1[i]>nums2[i]才叫有优势,那么只需要把nums1和nums2都排序,逐个比较,如果nums1[i]>nums2[i]那么就采用nums[i],如果nums1[i]<=nums2[i]那就应该用最小的nums1去应对。但是题目要求的是排序nums1让其对nums2有优势,所以nums2不能排序,那我们比较又需要排序,这个时候可以使用优先级队列,排序nums2并且记录下nums2的索引,然后也把nums1给排序,这样就可以通过最大值的比较,填入对应的索引位置。

class Solution {
  public int[] advantageCount(int[] nums1, int[] nums2) {
        int n = nums1.length;
        PriorityQueue<int[]> queue = new PriorityQueue<>(
                (int[] ints1, int[] ints2) -> ints2[1]-ints1[1]
        );
        for (int i = 0; i < n; i++) {
            queue.add(new int[]{i, nums2[i]});
        }

        int[] res = new int[n];
        Arrays.sort(nums1);
        int left = 0, right = n-1;
        while (!queue.isEmpty()) {
            int[] ints = queue.poll();
            int i = ints[0], value = ints[1];
            if (nums1[right] > value) {
                res[i] = nums1[right--];
            }else {
                res[i] = nums1[left++];
            }
        }
        return res;
    }
}

http://www.kler.cn/a/155088.html

相关文章:

  • 探索MoviePy:Python视频编辑的瑞士军刀
  • 「Mac玩转仓颉内测版12」PTA刷题篇3 - L1-003 个位数统计
  • Servlet入门 Servlet生命周期 Servlet体系结构
  • C++中string的新特性
  • 编写红绿起爆线指标(附带源码下载)
  • quartz
  • MacDroid Pro for Mac – 安卓设备文件传输助手,实现无缝连接与传输!
  • 整数分频,奇偶分频。
  • 【BVITS2】配置debug记录——Bert-VITS2-Integration-Pack-v2.0.2
  • 第十节HarmonyOS 使用资源引用类型
  • 在 TypeScript 中,interface、implements 和 extends 的作用
  • WT2003H语音芯片系列:通过bin文件实现板载语音更新,支持宽范围音频码率
  • CC++枚举类型与类型定义(typedef)
  • 【MySql】悲观锁和乐观锁的介绍
  • Micropython for QNX编译过程
  • Linux下配置邮箱客户端MUTT,整合msmtp + procmail + fetchmail
  • idea通过remote远程调试云服务器
  • 2015年五一杯数学建模C题生态文明建设评价问题解题全过程文档及程序
  • 分享一些Git的常用命令
  • 【Python】Gym的使用
  • OpenTelemetry系列 - 第2篇 Java端接入OpenTelemetry
  • ctfhub技能树_web_web前置技能_HTTP
  • Python海绵宝宝
  • 【SpringMVC】Spring Web MVC入门(一)
  • 公平锁和非公平锁以及他们的实现原理是什么
  • react-route-dom 实现简单的嵌套路由