【数据结构-堆】2233. K 次增加后的最大乘积

devtools/2025/1/13 7:55:11/

给你一个非负整数数组 nums 和一个整数 k 。每次操作,你可以选择 nums 中 任一 元素并将它 增加 1 。

请你返回 至多 k 次操作后,能得到的 nums的 最大乘积 。由于答案可能很大,请你将答案对 109 + 7 取余后返回。

示例 1:
输入:nums = [0,4], k = 5
输出:20
解释:将第一个数增加 5 次。
得到 nums = [5, 4] ,乘积为 5 * 4 = 20 。
可以证明 20 是能得到的最大乘积,所以我们返回 20 。
存在其他增加 nums 的方法,也能得到最大乘积。

示例 2:
输入:nums = [6,3,3,2], k = 2
输出:216
解释:将第二个数增加 1 次,将第四个数增加 1 次。
得到 nums = [6, 4, 3, 3] ,乘积为 6 * 4 * 3 * 3 = 216 。
可以证明 216 是能得到的最大乘积,所以我们返回 216 。
存在其他增加 nums 的方法,也能得到最大乘积。

class Solution {
public:int maximumProduct(vector<int>& nums, int k) {int MOD = 1e9 + 7;priority_queue<int, vector<int>, greater<int>> q(nums.begin(), nums.end());for(int i = 0; i < k; i++){int a = q.top();q.pop();a++;q.push(a);}int ans = 1;while(!q.empty()){ans = (long long)ans * q.top() % MOD;q.pop();}return ans;}
};

这道题我们要找进行k次操作后的最大乘积是多少,那么我们结合贪心的思路,我们可以知道在和一样的情况下,所有的元素越平均,最后乘积会越大。

那么也就是说我们每次进行+1操作,要对最小的元素操作,我们就可以使用小根堆来找出每一轮最小的元素,然后进行操作。

然后我们用一个变量ans记录乘积的值,将q的所有元素进行相乘记录到ans中,最后返回ans即可。


http://www.ppmy.cn/devtools/150102.html

相关文章

JavaScript-一份你的前端入门说明书(计算机专业)

一.简介 1.起源 JavaScript 起源于 1995 年,当时它主要是为了满足网页交互的需求而被创建。它最初的设计目的是为了让网页开发者能够在网页中添加一些简单的交互效果和动态内容。在那个时期,网页大多是静态的,而 JavaScript 的出现为网页带来了新的活力。Netscape 公司的 B…

16.C语言预处理指令详解:#define、#include、#ifdef 等高效用法

目录 1.简介2.define3.undef4.include5. if... endif6. ifdef...endif7.defined 运算符8. ifndef...endif9.预定义宏10.line11.error12.pragma 1.简介 本篇原文为&#xff1a;C语言预处理指令详解&#xff1a;#define、#include、#ifdef 等高效用法。 更多C进阶、rust、pytho…

【程序猿面试题——计算机基础知识和编程】C++结构体的内存对齐是怎么样的?

【程序猿面试题——计算机基础知识和编程】C结构体的内存对齐是怎么样的&#xff1f; 【程序猿面试题——计算机基础知识和编程】C结构体的内存对齐是怎么样的&#xff1f; 文章目录 【程序猿面试题——计算机基础知识和编程】C结构体的内存对齐是怎么样的&#xff1f;前言C 结…

SQLAlchemy: python类的属性值为None,数据为JSON类型,插入数据库为‘ NULL‘字符串,而不是真正的NULL

描述&#xff1a; 最近使用python orm框架SQLAlchemy时&#xff0c;遇到mysql数据库表字段类型为json类型&#xff0c;python实体类属性对应值为None,但是插入数据库后为‘ NULL‘字符串&#xff0c;而不是真正的NULL 实体类&#xff1a; from sqlalchemy import Column, Da…

网络安全-网站协议请求报文(基础篇)

1.web应用程序技术 什么是http协议&#xff1f; HTTP&#xff1a;超文本传输协议。 可以实现客户端通过浏览器获取服务端数据信息&#xff0c;然后通过浏览器显示出来&#xff1b; 客户端可以通过浏览器提交信息到服务器端后台程序&#xff08;数据库服务器、缓存服务器&am…

护网行动——筑牢网络防线的关键战役

图片 往期推荐 "教育漏洞报告平台:助力提升教育信息安全&#xff0c;白帽子们快来注册赢取奖励!" 《OSCP&#xff08;Offensive Security Certified Professiona&#xff09;考证全攻略&#xff1a;网络安全实战认证之旅》 《夸克网盘掘金秘籍&#xff1a;开启财富增…

GPU与CPU:架构对比与技术应用解析

1. 引言 1.1 为什么探讨GPU与CPU的对比&#xff1f; 随着计算技术的不断发展&#xff0c;GPU&#xff08;图形处理单元&#xff09;和CPU&#xff08;中央处理单元&#xff09;已经成为现代计算机系统中最重要的两个组成部分。然而&#xff0c;随着应用场景的多样化和对性能需…

怎么实现Redis的高可用?

大家好&#xff0c;我是锋哥。今天分享关于【怎么实现Redis的高可用&#xff1f;】面试题。希望对大家有帮助&#xff1b; 怎么实现Redis的高可用&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 为了实现 Redis 的高可用性&#xff0c;我们需要保证在发…