zoukankan      html  css  js  c++  java
  • #Leetcode# 703. Kth Largest Element in a Stream

    https://leetcode.com/problems/kth-largest-element-in-a-stream/

    Design a class to find the kth largest element in a stream. Note that it is the kth largest element in the sorted order, not the kth distinct element.

    Your KthLargest class will have a constructor which accepts an integer kand an integer array nums, which contains initial elements from the stream. For each call to the method KthLargest.add, return the element representing the kth largest element in the stream.

    Example:

    int k = 3;
    int[] arr = [4,5,8,2];
    KthLargest kthLargest = new KthLargest(3, arr);
    kthLargest.add(3);   // returns 4
    kthLargest.add(5);   // returns 5
    kthLargest.add(10);  // returns 5
    kthLargest.add(9);   // returns 8
    kthLargest.add(4);   // returns 8
    

    Note: 
    You may assume that nums' length ≥ k-1 and k ≥ 1.

    代码:

    class KthLargest {
    public:
        KthLargest(int k, vector<int> nums) {
            int n = nums.size();
            for(int i = 0; i < n; i ++) {
                q.push(nums[i]);
                if(q.size() > k) q.pop();
            }
            K = k;
        }
        
        int add(int val) {
            q.push(val);
            if(q.size() > K) q.pop();
            return q.top();
        }
        
    private:
        priority_queue<int, vector<int>, greater<int> > q;
        int K;
        
    };
    
    /**
     * Your KthLargest object will be instantiated and called as such:
     * KthLargest obj = new KthLargest(k, nums);
     * int param_1 = obj.add(val);
     */
    

      Heap 第一题

    FHFHFH

  • 相关阅读:
    算法笔记--数据结构--并查集
    帮助
    八数码难题神奇!!!
    题解 P1197 【[JSOI2008]星球大战】
    线段树1对于Pushdown的理解
    最短路问题之SPFA
    并查集(路径压缩)
    并查集(KRUSKAL算法)
    初识单调栈
    初识单调队列
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/10331746.html
Copyright © 2011-2022 走看看