首页 > 百度提前批一二三面2021-7月
头像
杀死那只大白鹿
编辑于 2021-08-02 11:03
+ 关注

百度提前批一二三面2021-7月

//## 百度一面
百度一面2021-7-20


八股

抽象类和接口区别
类加载过程,(各个属性分别是在哪个阶段赋值的,普通变量,静态变量)
redis和mysql区别
redis五种数据类型,你校园项目都用这五种类型存了什么
cookie和session的相同不同点


项目

1.你们是怎么实现的xxx?
2.为什么要换成你的方案?
3.你存的数据来源是哪来的?
4.服务器接收信息怎么接收?
5.你有在这个项目里搭建web server吗?
6.怎么搭建一个web server(发送请求的整个过程,中间各个部分怎么处理的)
7.nginx怎么找到哪台机器处理请求?


做两道题

// -1.单链表找环-          ##########################
// 地址: https://leetcode-cn.com/problems/linked-list-cycle/

class Node{
    int val;
    Node next ;

    public Node(int val, Node next) {
        this.val = val;
        this.next = next;
    }
}
public class test {
    boolean isCircule(Node node) {
        if (node == null || node.next == null) {
            return false;
        }
        // double pointer
        Node fastPointer = node;
        Node slowPointer = node;
        //没有环, fast指针到达末尾=null的位置
        while (fastPointer != null && fastPointer.next!=null) {
            slowPointer = slowPointer.next;
            fastPointer = fastPointer.next.next;
            if (fastPointer != slowPointer) {
                continue;
            } else {
                // 当二者相遇,表示有环
                return true;
            }
        }
        // 没有环
        return false;

    }

    public static void main(String[] args) {
        // 测试场景
        // null
        // 1个node 2个node
        // >=2个形成环
    }
}

第二个题

//-2.第k大的数       -##########################

public class NumK {
    /**
     * 可能有重复值
     * @param array 查找数组
     * @param numK  第k大的数
     * @return 返回该数
     */
    public Integer getNoBigK(int []array,int numK){
        // 边界条件
        if (array == null || array.length <= 0 || numK>array.length || numK<=0) {
            return null;
        }

        this.sortArray(array);

        int index = array.length-1; // 结果index
        int nowNoK = 1; //统计当前是第几大的数
        while (index >= 0 && nowNoK < numK && nowNoK <= array.length) {
            int getnumber = array[index];
            // 筛选掉重复的值
            while (index - 1 >= 0 && array[index - 1] == getnumber) {
                index--;
            }
            index--;
            nowNoK++;
        }
        if(index <0|| index > array.length || nowNoK!=numK){
            return null;
        }
        return array[index];
    }



    //快排
    public void sortArray(int array[]) {
        sortHelp(array, 0, array.length-1);
    }

    public void sortHelp(int[] array, int start, int stop) {
        if (start >= stop) {
            return;
        }
        int part = partition(array, start, stop);
        sortHelp(array,start,part-1);
        sortHelp(array, part + 1, stop);
    }

    public int partition(int array[], int start, int stop) {
        int temp = array[start];
        while (start < stop) {
            while (start < stop && temp <= array[stop]) {
                stop--;
            }
            array[start] = array[stop];
            while (start < stop && temp >= array[start]) {
                start++;
            }
            array[stop] = array[start];
            array[start] = temp;
        }
        return start;
    }

    public static void main(String[] args) {
        NumK numK = new NumK();
//        // 测试快排
//        int[] a = {1, 2, -2, 2, 3, 45, 121, 214, 12, 24};
//        numK.sortArray(a);
//        System.out.println(Arrays.toString(a));

        int[] example = {1, 2, -2, 3,2,2, 3, 45, 121, 214, 12, 24};
        numK.sortArray(example);
        System.out.println(Arrays.toString(example));
        int nok = 10;//第几大
        Integer res = numK.getNoBigK(example, nok);
        System.out.println("第"+nok+"大的数是 " + res);
    }
}
#####################################分割##############################

百度二面2021-7-23


自我介绍

你在学校的项目?(科研项目..)
介绍一下你实习的项目?

实习项目

1.你的数据是从哪读来的?
2.你的数据存在两个文件系统里面?为什么?
3.你的实习的改进方案指标
4.序列化格式?
5.有没有遇到什么问题?
6.你觉得好的代码要有什么要求?
7.写段代码吧?

代码

实现一个arraylist# add remove方法

// 啪地敲完了,很快嗷。

百度三面2021-7-26

没有什么技术相关的,聊天乱吹就行。

更多模拟面试

全部评论

(5) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

近期精华帖

热门推荐