字节跳动-面试题记录

25.{编程}–写一个单例模式,懒汉加载
代码设计:

//单例模式 懒汉模式
public class Singleton {
    
    
    private static Singleton instance=null;

    private Singleton(){
    
    

    }
    public static Singleton newInstance(){
    
    //没有加锁 若并发调用时 可能会产生多个对象   优化synchronized

        if(instance==null){
    
    
            instance=new Singleton();
        }
        return  instance;
    }

}

26{编程}–从100000000个无序浮点数中找到10000个最大的数,要求时间复杂度最低
解题思路:
采用最小堆(优先队列实现最小堆)
将前10000个元素插入到优先队列中,然后继续遍历剩余的元素,每次遍历过程中,比较元素的值与优先队列队头的值,若当前元素的值大于优先队列队头的值,则剔除优先队列队头的值,将当前元素插入进去,这样就得到了最大的10000个数

猜你喜欢

转载自blog.csdn.net/fxwentian/article/details/115218552