首页 > *字节前端提前批一面面经(已约二面,许愿二面)*
头像
牛客73341976号
发布于 2021-07-18 15:58
+ 关注

*字节前端提前批一面面经(已约二面,许愿二面)*

字节前端提前批一面面经(已约二面,许愿二面)
1.和面试官互相自我介绍。-5min
2.请说一下你自己做的项目:说了自己做的两个项目(介绍了echarts的使用和深入聊了一下前端跨域问题),说了一下在映客和360实习的工作,以及遇到的问题和自己的解决方法。-25min
3.问一下前端js方面的(面试官问的很简单,我说了很多,算是说的很全面):
(1)js == 和 === 的区别
(2)js splice 相关,参数,是否改变原数组。
(3)js slice 相关,参数,是否改变原数组。
(4)说说 promise
(5)说说 promise.all,用法,什么情况触发回调,举例说明不同情况。
4.基础题就到这,咱们开始算法题吧
(1)js 大数相乘(原理是竖式计算,注意下标对应关系,类似于在纸上运算,从后向前便利),开始是有问题的,后面也没调出来,可能是因为开始我键盘没电了。耽误了一下时间,比较的急,但是面试官夸我思路好,错误在js上,质疑我写了多少行代码,我说学前端一年大概不到两万行js代码,面试官说那你下一个算法题用python(最开始是学习了python,刷leetcode也是用python比较多)。

  function multiply(num1, num2){
        if(isNaN(num1) || isNaN(num2)) return ''
        num1=String(num1)
        num2=String(num2)
        let len1 = num1.length,
            len2 = num2.length
        let res=[]
        for(let i = len1 - 1; i >= 0; i--){
          for(let j = len2 - 1; j >= 0; j--){
            let index1 = i + j,
                index2 = i + j + 1
            let mul = num1[i] * num2[j] + (res[index2] || 0)
            res[index1] = Math.floor(mul / 10) + (res[index1] || 0)
            res[index2] = mul % 10
          }
        }
        var result=res.join('')  
        return result === 0 ? '0' : result.replace(/^0+/,'')
      }
      let t=multiply(31233, 333333)
      console.log(t);  

(2)python 求数组第k大的数
开始写了快排取了 len(arr)-k 个数,面试官说这个时间复杂度是 nlogn,不太满意,让我写时间复杂度为 On 的,思路是设置 mid ,小于 mid 存在 left 数组,大于存在 right 数组,就不需要对两边分别排序。好像还有更好的方法,有待研究,欢迎小伙伴们补充。
有时间会写百度提前批面经,最后,牛课保佑二面过过过!!!

更多模拟面试

全部评论

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

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐