字节跳动iOS开发实习生面试经历

经过一周的面试和时间的沟通,终于通过并拿到offer

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:812157648,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!


一面:

1.指针和引用的区别
2.虚函数和纯虚函数的区别
3.TCP和UDP的区别
算法题:
1.在一棵二叉树上,每个点包含点权(包括负权),找到一个起点和一个终点使得这条路径的点权和最大。
(dfs左右子树合并,并向上传递左右子树的最大值)
2.如果一个数的因子存在2,3,5那么这个数称为丑数,找到第n小的丑数(其中1为第一小的丑数)
(利用堆进行bfs,每次进行2,3,*5,并用map防止重复)
3.找到一个字符串的最大回文子串
(O ( n 2 ) O(n^2)O(n2)方法可以使用枚举中心扩展和dp,O ( n ) O(n)O(n)使用马拉车或者哈希)


二面:

1.堆排序
2.给一个二维01数组, 找到其中最大的由1组成的正方形的边长。
(dp,记录每个点作为正方形的右下角能组成的正方形最大边长,然后通过这个点向上和向左最大连续1个数进行转移)
3.判断一个二叉树是否为完全二叉树
(bfs,如果某个点为空,并且这个队列剩下的存在非空点,那么这个二叉树不是完全二叉树)
4.数据结构的种类


三面:

1.给一个数组,找到一个数组中数能组成的最大和,使得这个数能够被三整除。
(当时没写好写的01背包,后来想到,对每个数,如果mod3=0即加入答案,如果是1,2则分别加入数组,然后排序,贪心组合)
2.给一个二组数组,数组的行从左到右递增,列从上到下递增,找到target
(枚举数组的行,然后对列进行二分查找target)

原文作者:zzugzx
原文地址:http://t.cn/A652LfpO

你可能感兴趣的:(字节跳动iOS开发实习生面试经历)