快手前端实习生一面

2 篇文章 0 订阅
2 篇文章 0 订阅

第一次面试大厂,没有经验,虽然面前看了两天的面经,但是还是败给了当初被我抛弃的算法(大一下退出算法跑去开发)
一面(60min):
1.自我介绍
2.在平常开发中遇到过哪些问题?怎么解决的?
3.sso单点登录怎么实现的?
4.离职原因?
5.整个软件开发的流程是怎样的?
6.set和map的区别
7.object和map的区别
8.了解promise.all,promise.race吗
9.手撕promise.all
10.了解过哪些排序方法?
11.写一下你最熟悉的排序方法
12.讲一下从浏览器输入url,点击回车后发生了什么
13.TCP协议和UDP协议的区别
14.反问

好好好,看了三天的链表反转,队列、栈二叉树的公共祖先…唯独没看排序(虽然但是排序这么简单的问题我没写出来

这次估计悬了整个一下两道代码题都没答完整,可能是内心有点紧张吧,回头想了下也不算很难的内容,感觉这次错过了真的太可惜了

把两道代码题在复盘一下吧:

1.手写PromiseAll

const promiseAll = (promises) => {
    return new Promise((resolve,reject)=>{
	  if(!Array.isArray(promises)) throw new TypeError("参数不是数组");
        let resArr = []
		let index = 0
		for(let i = 0;i<promises.length;i++){
		  Promise.resolve(promises[i]).then(res=>{
			index++;
			resArr[i] = res;
			if(index === promises.length){
			resolve(resArr);
			}
    }).catch(err=>{
		 reject(err);
	})
}

虽然但是就这么几行,居然没写出来
(还是自己太菜了)
排序算法:

2.快速排序

function quickSort (arr) {
  let start = 0,end = arr.length - 1
  sort(arr,start,end);
  return arr;
}

function sort (arr,start,end) {
  if(start >= end){
    return
  }
  let temp = arr[start],i=start,j=end;

  while (i !== j){
    while (arr[j]>=temp && j > i){
      j--;
    }
    while (arr[i]<=temp && j > i){
      i++;
    }
    if(j > i){
      let tmp = arr[i];
      arr[i] = arr[j];
      arr[j] = tmp
    }
  }
  arr[start] = arr[i];
  arr[i] = temp;
  console.log(arr)
  sort(arr,start,i-1);
  sort(arr,i+1,end)
}

还要好好刷题,刷题太少了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卷鑫菜·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值