8.12

作者: ziru_SUN | 来源:发表于2017-08-29 21:10 被阅读0次

    Heap:

    LRU Cache:
    用hashmap和双向linkedlist结合做缓存,hashmap使得查询时间是O(1),链表用来保存时间轴

    Hash Function 如何实现

    PriorityQueue comparator的实现:

            //k 必须要有, 是Integer 不是 int 注意
    //这个是从小到大排序的!
             PriorityQueue<Integer> pq = new PriorityQueue<Integer>(k, new Comparator<Integer>() {
                 public int compare(Integer o1, Integer o2) {
                     if(o1 > o2) {
                         return 1;
                     } else if(o1 < o2) {
                         return -1;
                     } else {
                         return 0;
                     }
                 }
             });
    

    排序用priorityqueue有奇效,求第k个大的数,前K个大的数,用一个minheap

    遍历HashMap:

    for(Map.Entry<Integer, Integer> entry : map.entrySet()) {
      getKey()
      getValue()
    
    Collections.sort(result, Collections.reverseorder())
    

    巧妙 需要学习

            for (Point p : points) {
                pq.add(p);
                if (pq.size() > k) {
                    pq.poll();
                }
            }
    

    !!!
    降序
    return o2 - 0o1

    int compare(Object o1, Object o2) 返回一个基本类型的整型
    如果要按照升序排序,
    则o1 小于o2,返回-1(负数),相等返回0,01大于02返回1(正数)
    如果要按照降序排序
    则o1 小于o2,返回1(正数),相等返回0,01大于02返回-1(负数)

    相关文章

      网友评论

          本文标题:8.12

          本文链接:https://www.haomeiwen.com/subject/tyterxtx.html