字节跳动(客户端开发-教育)

一面 9.22 45min

  • 自我介绍
  • 程序在内存中分配
    int main(int argc, char* argv[]){   
       int i = 0;    
       int arr[3] = {0};    
       for(; i<=3; i++){       
          arr[i] = 0;     
          printf("hello world\n");   
       }   
       return 0;
    } 
    输出结果是什么?
    变量分配在哪里?
    栈的特点?i和arr在栈上的分配情况详细介绍?(一块内存区从高到低)
    “地址递减”编址方式分配内存:编译器编译程序时,按变量声明先后,从可分配内存中从高地址向低地址分配内存。(其实是栈内存区的编址方式)
    程序中引用了arr[3]————数组下标越界(VC++6.0编译器可以检查出显示的下标越界,但是不检查隐式的下标越界)。循环内部会将所谓的arr[3]置0,而arr[3]实质上就是i,导致程序最终死循环。
    长度为n的数组,获取第m个元素的地址,计算机是怎么计算的?
    arr_m_address = arr + m * sizeof(arr[])
    arr[0]=0; //0xf0   //低地址
    arr[1]=0; //0xf4
    arr[2]=0; //0xf8
    i=0;      //0xff   //高地址
  • 链表来实现LRU缓存淘汰策略?
    时间复杂度:o(n)
    优化策略:hashmap
    key/value分别是什么?
  • 说一说http,挑重点说
    应用层 web页面请求 底层基于TCP
    GET POST DELETE等方式
    TCP三次握手
    80端口
    状态码 1xx 2xx 3xx 4xx 5xx
    HTTPS SSL握手 443
  • HTTP1.1 和2.0区别?
    1、多路复用
    HTTP2.0使用了多路复用技术,做到同一个连接并发处理多个请求,且并发请求的数量比HTTP1.1大了好几个数量级。HTTP1.1也可以多建立几个TCP连接,来支持处理更多并发的请求,但创建TCP连接本身也是有开销的。
    2、头部数据压缩
    在HTTP1.1中,HTTP请求和响应都是由状态行、请求/响应头部、消息主体三部分组成。一般而言,消息主体都会经过gzip压缩,或者本身传输的就是压缩过后的二进制文件,但状态行和头部却没有经过任何压缩,直接以纯文本传输。随着Web功能越来越复杂,每个页面产生的请求数也越来越多,导致消耗在头部的流量越来越多,尤其是每次都要传输UserAgent、Cookie这类不会频繁变动的内容,完全是一种浪费。
    HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。
    3、服务器推送
    服务端推送是一种在客户端请求之前发送数据的机制。网页使用了许多资源:HTML、样式表、脚本、图片等等。在HTTP1.1中这些资源每一个都必须明确地请求。这是一个很慢的过程。浏览器从获取HTML开始,然后在它解析和评估页面的时候,增量地获取更多的资源。因为服务器必须等待浏览器做每一个请求,网络经常是空闲的和未充分使用的。
    为了改善延迟,HTTP2.0引入了server push,它允许服务端推送资源给浏览器,在浏览器明确地请求之前,免得客户端再次创建连接发送请求到服务器端获取。这样客户端可以直接从本地加载这些资源,不用再通过网络。
  • HTTP报文格式?
    HTTP的请求报文包括:请求行(request line)、请求头部(header)、空行和请求数据(request data) 四个部分组成。
    请求行包括:请求方法,URL(包括参数信息),协议版本这些信息(GET /admin_ui/rdx/core/images/close.png HTTP/1.1);
    请求头部(Header)是一个个的key-value值,比如
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
    空行(CR+LF):请求报文用空行表示header和请求数据的分隔
    请求数据:GET方法没有携带数据, POST方***携带一个body
  • SSL握手过程?
  • 介绍虚拟内存
  • 虚拟内存解决了什么问题
    内存空间有限;
    多进程同时;
  • 介绍页表设计
  • 手撕:判断是否是镜像二叉树
给定一个二叉树,检查它是否是镜像对称的。

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
    1
   / \
  2   2
 / \ / \
3  4 4  3

#include <bits/stdc++.h>
using namespace std;
struct TreeNode
{
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x):val(x),left(nullptr),right(nullptr) {}
};
bool myequal(TreeNode* r1,TreeNode* r2)
{
    if(r1==nullptr && r2==nullptr) return true;
    if(r1==nullptr || r2==nullptr) return false;
    if(r1->val!=r2->val) return false;
    return myequal(r1->left,r2->right)&&myequal(r1->right,r2->left);
}
bool is(TreeNode* root)
{
    if(root==nullptr) return true;
    return myequal(root->left,root->right);
}

非递归的方法?

  • 智力题:
    条件:

1.64匹马
2.8个赛道
3.每次比赛只能知道比赛结果名次,不能知道具体时间
求:用最少的比赛次数,找出最快的4匹
11场
8 + 1 + 1 + 1

#面经#
全部评论
问了这么多问题啊
1 回复 分享
发布于 2020-09-25 16:57
客户端这么难?
点赞 回复 分享
发布于 2020-09-25 17:07
我也是22面的  到现在还没有结果  问题都能回答  手撕代码也都写出来了   我真的想知道教育真的还有hc么??
点赞 回复 分享
发布于 2020-09-24 12:05
楼主怎么样,出结果了没
点赞 回复 分享
发布于 2020-09-23 21:26

相关推荐

自从我室友在计算机导论课上听说了“刷&nbsp;LeetCode&nbsp;是进入大厂的敲门砖”,整个人就跟走火入魔了一样。他在宿舍门口贴了一张A4纸,上面写着:“正在&nbsp;DP,请勿打扰,否则&nbsp;Time&nbsp;Limit&nbsp;Exceeded。”日记本的扉页被他用黑色水笔加粗描了三遍:“Talk&nbsp;is&nbsp;cheap.&nbsp;Show&nbsp;me&nbsp;the&nbsp;code。”连宿舍聚餐,他都要给我们讲解:“今天的座位安排可以用回溯算法解决,但为了避免栈溢出,我建议用动态规划。来,这是状态转移方程:dp[i][j]&nbsp;代表第&nbsp;i&nbsp;个人坐在第&nbsp;j&nbsp;个位置的最优解。”我让他去楼下取个快递,他不直接去,非要在门口踱步,嘴里念念有词:“这是一个图的遍历问题。从宿舍楼(root)到驿站(target&nbsp;node),我应该用&nbsp;BFS&nbsp;还是&nbsp;DFS?嗯,求最短路径,还是广度优先好。”和同学约好出去开黑,他会提前发消息:“集合点&nbsp;(x,&nbsp;y),我们俩的路径有&nbsp;k&nbsp;个交点,为了最小化时间复杂度,应该在&nbsp;(x/2,&nbsp;y/2)&nbsp;处汇合。”有一次另一个室友低血糖犯了,让他帮忙找颗糖,他居然冷静地分析道:“别急,这是一个查找问题。零食箱是无序数组,暴力查找是&nbsp;O(n)。如果按甜度排序,我就可以用二分查找,时间复杂度降到&nbsp;O(log&nbsp;n)。”他做卫生也要讲究算法效率:“拖地是典型的岛屿问题,要先把连通的污渍区块都清理掉。倒垃圾可以用双指针法,一个指针从左往右,一个从右往左,能最快匹配垃圾分类。”现在我们宿舍的画风已经完全变了,大家不聊游戏和妹子,对话都是这样的:“你&nbsp;Two&nbsp;Sum&nbsp;刷了几遍了?”“别提了,昨天遇到一道&nbsp;Hard&nbsp;题,我连暴力解都想不出来,最后只能看题解。你呢?”“我动态规划还不行,总是找不到最优子结构。今天那道接雨水给我整麻了。”……LeetCode&nbsp;真的害了我室友!!!
老六f:编程嘉豪来了
AI时代还有必要刷lee...
点赞 评论 收藏
分享
评论
2
31
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务