百度工程效能一面


工程效能全栈实习生面试 50min

  1. 学习前端的路径

  2. 为什么研究源码,实习和青训做了什么

  3. 掌握哪些排序算法,应该怎么用

  4. linklist和arraylist区别

  5. react hooks

  6. useref 的使用,除了操作dom还有其他作用吗

  7. jwt实现原理

  8. 斐波那契数逐渐优化

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    let rem = []
    function fib(n){
    if(n<=1)return n
    if(rem[n])return rem[n]
    rem[n-1] = fib(n-1)
    rem[n-2] = fib(n-2)
    return rem[n-1] + rem[n-2]
    }

    console.log(fib(55));
  9. 将数组(含有负数)中的每一个数字平方,确保返回的数组还是有序的。要求时间复杂度O(n)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    function reverse(arr, i, j){
    let temp
    while(i<j){
    temp = arr[i]
    arr[i] = arr[j]
    arr[j] = temp
    i++
    j--
    }
    }
    function process(arr){
    let array = arr.map(x => x * x)
    let idx = 0
    for(let i=1;i<array.length;i++){
    if(array[i] < array[idx]){
    idx = i
    }
    }
    reverse(array,0,idx)
    // console.log(array);
    let l = 0, r = idx + 1,k = 0
    let res = []
    while(l <= idx && r < array.length){
    res.push(array[l] < array[r] ? array[l++] : array[r++])
    }
    while(l <= idx){
    res.push(array[l++])
    }
    while(r < array.length ){
    res.push(array[r++])
    }
    console.log(res);
    }


    process([-6,-3,-2,0,1,2,3])

  10. 创建一个调用func的函数,使得func在程序中最多调用n次。之后再调用这个函数,将返回最后调用func的结果。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    /**
    * 创建一个调用func的函数,使得func在程序中最多调用n次。之后再调用这个函数,将返回最后调用func的结果。
    * 参数:
    * n (number): 超过多少次不再调用func(注:限制调用func 的次数)。
    * func (Function): 限制执行的函数。
    */
    function process(fn,n){
    let time = 0
    let res
    return function (){
    if(time == n)return res
    let context = this
    time ++
    res = fn.apply(context, arguments)
    return res
    }
    }

    function func(){
    return Math.random()
    }

    let fn = process(func, 3)

    console.log(fn());
    console.log(fn());
    console.log(fn());
    console.log(fn());
    console.log(fn());
    console.log(fn());
  11. 反问

面的是全栈,回头复习一下 golang 和 java


Author: pkq
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source pkq !
  TOC