1. 程式人生 > 其它 >在springboot程式中jackson自定義註解和欄位解析器

在springboot程式中jackson自定義註解和欄位解析器

import java.util.PriorityQueue;

public class Algorithm {

    public static void main(String[] args) {

        int[] arr = {3,2,4,5,6};
        System.out.println(new KthLargest(3, arr).add(1));
    }
}

class KthLargest {

    PriorityQueue<Integer> pq;
    int k;

    public KthLargest(int k, int[] nums) {

        /**
         * 建立最小堆,最多存放三個元素,每次新增新元素,和堆頂元素進行比較,堆頂元素就一直是第k大的元素
         */
        pq = new PriorityQueue<>();
        this.k = k;

        for (int i = 0; i < nums.length; i++) {
            add(nums[i]);
        }
    }

    public int add(int val) {

        if (pq.size() < k){
            pq.add(val);
        }
        else {

            if (val > pq.peek()){

                pq.poll();
                pq.add(val);
            }
        }

        return pq.peek();
    }
}

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