码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 1046. Last Stone Weight (最后一块石头的重量 )

时间:2020-02-15 09:16:54      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:priority   比较   ESS   less   ack   The   htm   add   完成   

题目标签:Greedy

  利用priority queue, 把石头重量都存入 pq, 每次取最大两个比较,存入差值,直到pq 只剩最后一个。

 

Java Solution:

Runtime:  1 ms, faster than 92.5% 

Memory Usage: 37.1 MB, less than 100%

完成日期:02/14/2020

关键点:priority queue

class Solution {
    public int lastStoneWeight(int[] stones) {
        PriorityQueue <Integer> pq = new PriorityQueue<>((a, b) -> b - a);
        
        // add each stone weight into pq
        for(int s : stones) {
            pq.offer(s);
        }
        
        // each time get two max stones and add the difference back into pq
        while(pq.size() > 1) {
            pq.offer(pq.poll() - pq.poll());
        }
        
        return pq.poll();        
    }
}

参考资料:LeetCode Discuss

LeetCode 题目列表 - LeetCode Questions List

题目来源:https://leetcode.com/

LeetCode 1046. Last Stone Weight (最后一块石头的重量 )

标签:priority   比较   ESS   less   ack   The   htm   add   完成   

原文地址:https://www.cnblogs.com/jimmycheng/p/12310516.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!