题目
解法1
首先理解一下题意,要求的是对数组中某些数字增加1后的最大乘积,一共可增加k次。对于每一次增加1,整个乘积的变化是除了被增加这个数字以外的数字总和。那么最后乘积最大也就是k次增加的最多。从贪心的思想来看,保证每次增加都是最大即可,而每次增加要最大,也就是被增加的数字是所有数字中最小的即可。
自然而然地想到用min heap来保证能够快速找到最小的数字
note:这道题目有个点很有意思,如果这个mod放在最后进行,那么会TLE,只有放在while循环内部才能过,理论上时间复杂度是一模一样的
class Solution {
public:
int maximumProduct(vector<int>& nums, int k) {
int tmp = pow(10,9) + 7;
priority_queue<int,vector<</