栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Leetcode P2233 Java使用优先队列解决

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Leetcode P2233 Java使用优先队列解决

Leetcode P2233 Java使用优先队列解决 ideas

​ 我们象牙哦保证乘积最大那么就要保证每个数的差是最小的所我们要使用PriorityQueue,PriorityQueue可以保证我们每次poll的都是最小的元素,我们只需要让每次最小的元素+1即可。

  • 1 <= nums.length, k <= 10^5
  • 0 <= nums[i] <= 10^6

这个题目给我们的范围比较大,如果我们使用int类型会出现越界问题,所以我们要使用long类型,当我们每次运算结果做res %= 1000000007操作之后的值会变成int范围,所以我们在返回结果使用类型强制转换为int类型。

code
class Solution {
    public int maximumProduct(int[] nums, int k) {
        PriorityQueue priorityQueue = new PriorityQueue<>();
        for (int num : nums) {
            priorityQueue.offer(num);
        }

        while (k-- > 0) {
            int temp = priorityQueue.poll()+1;
            priorityQueue.offer(temp);
        }

        long res = 1;

        while (!priorityQueue.isEmpty()){
            res *= priorityQueue.poll();
            res %= 1000000007;
        }
 
        return (int)res;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/860655.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号