首页 > 字节跳动教育部,许愿
头像
匿名牛油
编辑于 2020-04-02 10:29
+ 关注

字节跳动教育部,许愿

一面(趁热,4点45刚刚面完)

没有自我介绍,简单问了一下
开始面试,十个问题

1. 单链表判断是否有环,要最优解

没想,快慢指针,快指针一次走两步,慢指针一次走一步,有环必定相遇

2. 两字符串,在长串中匹配短串

知道有一个KMP算法,但是没有深入研究过
只能说我自己的想法了,暴力解,遍历,问了时间复杂度

3. 知道一个二叉树的中序遍历和前序遍历。

前序遍历:根左右
中序遍历:左根右
根据这两个特征,第一步可以确定根节点,让后将中序遍历分成了两部分
跟着这个思路继续向下找

4. 连通图最小生成树

不会,直说了

5. 最长上升子序列,动态规划经典题。

两个循环,时间复杂度O(n**2)
def lengthOfLIS(self,nums):
        n = len(nums)
        if n == 0:
            return 0
       	dp = [1] * n
        for i in range(n):
            for j in range(i):
                if nums[j] < nums[i]:
                    dp[i] = max(dp[i],dp[j]+ 1)
        return max(dp)

6. 有一个栈,三个操作,push,pop,getMax,要求时间复杂度为(O(1)).

pop和push都是正常操作。
getMax才是问题的关键所在。要求时间复杂度为O(1)。采用空间换时间
新建一个私有Stack,每次push和pop操作和原栈相同,区别在于每次push
的时候和栈顶元素比较大小,大了才push进去,保证栈顶元素一直是最大的。

7. 进程间通信方式


8.线程池


9.面向对象三特征,重要介绍多态


10.MVC介绍一下


11.MySQL中drop,delete,truncate区别,啥时候用


12.代码题:大数求和 (20分钟) leetcode415

写了这么点,讲了下思想
循环里面还把alist写成了mxlen
n1 = len(lis1)
n2 = len(lis2)
mxlen = n1 if n1 > n2 else n2
tmp = 0
alist = [0] * mxlen 
for i in range(mxlen-1, -1, -1):
    if (lis1[i] + lis2[i] + tmp) > 10:
        mxlen[i] = (lis1[i] + lis2[i] + tmp) % 10
        tmp = (lis1[i] + lis2[i] + tmp) // 10
    else:
        mxlen[i] = lis1[i] + lis2[i] + tmp


总结下
基本算法的一两个不会,其他的都能说出一二来,78910记的东西,想到啥说啥,也不是特别熟悉。。。
面的问题我都小本本记下来了。
这感觉。。。有点迷,不知道什么结果
最后问我有没有啥问题,扯了一点后台啊,数据库啊,语言啊之类的东西问了下加班,
加班的问题是单双周好像,不过周末加班双倍工资。
我最后问了个问题:这才一面,问这个问题是不是有点早了(主要是我也没抱什么希望,三月初面了一次字节,问的都是靠脑子记的东西,答得也不好)
约的时间一个小时,最后差不多45分钟结束。

更多模拟面试

全部评论

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

相关热帖

近期热帖

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

近期精华帖

热门推荐