LeetCode2542最大子序列的分数

news2024/10/6 6:42:43

题目描述

  给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,两者长度都是 n ,再给你一个正整数 k 。你必须从 nums1 中选一个长度为 k 的 子序列 对应的下标。

对于选择的下标 i0 ,i1 ,…, ik - 1 ,你的 分数 定义如下:nums1 中下标对应元素求和,乘以 nums2 中下标对应元素的 最小值 。用公式表示: (nums1[i0] + nums1[i1] +…+ nums1[ik - 1]) * min(nums2[i0] , nums2[i1], … ,nums2[ik - 1]) 。请你返回 最大 可能的分数。一个数组的 子序列 下标是集合 {0, 1, …, n-1} 中删除若干元素得到的剩余集合,也可以不删除任何元素。

解析

  这题是给的两个数组,如果是给的组合起来的数据结构就会好理解一点,利用贪心的思维,将影响大的乘法作为先查找的元素,将nums2按从大到小排序(假设nums1和nums2绑定为一个对象,可能比下标排序好理解一点),然后维护一个最小堆去遍历即可。

public long maxScore(int[] nums1, int[] nums2, int k) {
        Integer[] ids = new Integer[nums1.length];
        for (int i = 0; i < nums1.length; i++) {
            ids[i] = i;
        }
        
        Arrays.sort(ids, (i, j) -> nums2[j] - nums2[i]);

        PriorityQueue<Integer> pq = new PriorityQueue<>();
        long sum = 0;
        for (int i = 0; i < k; i++) {
            sum += nums1[ids[i]];
            pq.offer(nums1[ids[i]]);
        }

        long ans = sum * nums2[ids[k - 1]];
        for (int i = k; i < nums1.length; i++) {
            int x = nums1[ids[i]];
            if (x > pq.peek()) {
                sum += x - pq.poll();
                pq.offer(x);
                ans = Math.max(ans, sum * nums2[ids[i]]);
            }
        }
        return ans;
    }

在这里插入图片描述

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

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

相关文章

微信小程序区分运行环境

wx.getAccountInfoSync() 是微信小程序的一个 API&#xff0c;它可以同步获取当前账号信息。返回对象中包含小程序 AppID、插件的 AppID、小程序/插件版本等信息。 返回的对象结构如下&#xff1a; 小程序运行环境&#xff0c;可选值有&#xff1a;develop&#xff08;开发版&…

java实现地形dem产汇流流场数据提取解析

一、基础概念 在GIS和气象学、海洋学、大气科学、水文学等领域&#xff0c;"提取流场"通常指的是从数据集中识别和分析流体&#xff08;如水流、风场、洋流、大气流&#xff09;的运动模式和流向的过程。这个过程涉及数据处理、可视化和分析技术&#xff0c;下面是提…

【计算机网络】——概述(图文并茂)

概述 一.信息时代的计算机网络二.互联网概述1.网络&#xff0c;互连网&#xff0c;互联网&#xff08;因特网&#xff09;1.网络2.互连网3.互联网&#xff08;因特网&#xff09; 2.互联网简介1.互联网发展的三个阶段2.互联网服务提供者&#xff08;ISP&#xff09;3.互联网的组…

知了汇智携手川农大,为计算机学子打造实战型综合项目实训

随着数字化产业的迅猛发展和产业数字化转型的不断深入&#xff0c;产业对数字人才的需求也在发生变化。为了培养适应市场需求的高素质应用型人才&#xff0c;5月24日&#xff0c;知了汇智携手四川农业大学&#xff0c;为信息工程学院计算机科学与技术专业22级学子带来一场兼具实…

JDK JRE JVM 三者的关系

总结&#xff1a; 1. jdk 中 的 javac 编译器将 .java 文件编译为 .class 字节码文件 &#xff08;编译&#xff09; 2. jre 执行 .class 字节码文件 &#xff08;运行&#xff09; 3. jre 通过 jvm 运行程序&#xff0c;确保程序能够在不同平台上正确执行&#xff08;实现跨平…

Operation not allowed when innodb_forced_recovery > 0.

到mysql的配置文件中 把这行注释掉

第N3周:Pytorch文本分类入门

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同学的学习圈子 这里借用K同学的一张图片大致说明本次任务流程。 1.本次所用AG News数据集介绍 AG…

医院内跌倒的预测模型构建(Boruta+lightgbm+DCA分析)

医院内跌倒的预测模型构建&#xff08;BorutalightgbmDCA分析&#xff09; 跌倒有时候是很严重的事情&#xff0c;常常听说骨质疏松的老年人跌倒后造成髋骨骨折&#xff0c;导致长期卧床&#xff0c;进而导致肌肉萎缩、肺炎等等并发症&#xff0c;最终导致不良预后。医院内的跌…

AWS中国峰会2024 半日游

亚马逊云科技中国峰会于2024年5月29-30日在上海举办 今年就去了半天&#xff0c;去年也是去过的&#xff0c;不过今年的活动个人感觉比去年略微凌乱了一点。 今年的峰会方向和去年一致&#xff0c;均是AI方向的各项内容&#xff08;基础架构、安全、服务、游戏、驾驶、各行各…

node版本切换

vue项目&#xff0c;有的项目需要低版本&#xff0c;有的又需要高版本&#xff0c;不能每次都卸载安装之类的吧&#xff0c;就想着怎么能切换版本使用&#xff0c;搜索资料最终使用nvm来进行node版本管理&#xff0c;下面是使用方法&#xff1a; 1.下载node版本管理器NVM 下载…

【Linux】多线程——线程概念|进程VS线程|线程控制

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;理解【Linux】多线程——线程概念|进程VS线程|线程控制 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! &…

msf攻击windows实例

环境&#xff1a;攻击机kali&#xff08;192.168.129.139&#xff09;&#xff0c;目标机windows10&#xff08;192.168.129.132&#xff09; 方法一&#xff1a;通过web站点&#xff0c;使用无文件的方式攻击利用执行&#xff08;命令执行漏洞&#xff09; 方法二&#xff1…

Android 开机动画的启动过程BootAnimation(基于Android10.0.0-r41)

文章目录 Android 开机动画的启动过程BootAnimation(基于Android10.0.0-r41)1.开机动画的启动过程概述2.为什么设置了属性之后就会播放&#xff1f; Android 开机动画的启动过程BootAnimation(基于Android10.0.0-r41) 1.开机动画的启动过程概述 下面就是BootAnimation的重要部…

香橙派开发板测评:探索创新的嵌入式解决方案

嵌入式系统在当今科技领域中扮演着越来越重要的角色&#xff0c;而开发板作为嵌入式系统设计的核心工具&#xff0c;不断推动着创新的边界。在众多开发板中&#xff0c;香橙派&#xff08;Orange Pi&#xff09;系列以其出色的性能和丰富的接口&#xff0c;备受开发者的青睐。本…

xss漏洞学习(题解)

1.简单知识点回顾 XSS允许恶意web用户将代码植入到提供给其它用户使用的页面中。 特点&#xff1a;能注入恶意的HTML/JavaScript代码到用户浏览器网址上&#xff0c;从而劫持会话 类型&#xff1a; DOM型&#xff1a;属于反射型的一种&#xff0c;利用非法输入来闭合对应的h…

动态代理的代码实现

目录 准备工作 正式书写 测试 准备工作 定义一个BigStar类&#xff1a; 定义Star接口&#xff0c;在这里面定义一些想要被代理的方法。 让BigStart实现Star接口&#xff1a; 正式书写 新建ProxyUtil类&#xff0c;这个类的作用就是创建一个代理&#xff0c;里面有createPro…

WebGoat靶场搭建

WebGoat靶场介绍 WebGoat是一个由OWASP&#xff08;Open Web Application Security Project&#xff09;组织开发的应用平台&#xff0c;专门用于进行Web应用程序安全漏洞的实验。它旨在通过模拟各种安全漏洞&#xff0c;帮助用户了解和学习如何识别和防御这些漏洞。WebGoat基…

排序算法(一) 基础排序算法

排序算法 基础排序算法 排序本质&#xff1a;减小逆序对的过程 在基础排序算法中&#xff0c;将待排序序列分为相对有序区与相对无序区。 每次遍历到数组末尾称为一轮。 冒泡排序(无序区-有序区, O ( n 2 ) O(n^2) O(n2),稳定,就地) 在每一轮中&#xff0c;逐次与下一邻项…

在长窗口时代,RAG技术是否仍然必要?

自从谷歌推出 Gemini 1.5 Pro&#xff0c;行业内部对于 RAG 的讨论就不绝于耳。 Gemini 1.5 Pro 的性能确实令人瞩目。根据谷歌公布的技术文档&#xff0c;该系统能够稳定处理长达 100 token 的内容&#xff0c;相当于一小时的视频、十一小时的音频、超过三万行的代码或七十万…

服务器的初始化

服务器的初始化 新的服务器到手&#xff0c;部署服务器的初始化。 1、配置ip地址 网关 dns解析&#xff08;static&#xff09;内网和外网 2、安装源&#xff0c;外网&#xff08;在线即可&#xff09;内网&#xff08;只能用源码包编译安装&#xff09; 3、磁盘分区&#…