字节跳动的面试题

1

A.ul只能紧挨着liB.a中不能再嵌套aC.dl dtD.ol li是有序排列

2

display: none和visibility:hidden的区别就是visibility:hidden会保留元素的空间repaint(重绘) ,repaint发生更改时,元素的外观被改变,且在没有改变布局的情况下发生,如改变outline,visibility,background color,不会影响到dom结构渲染。reflow(渲染),与repaint区别就是他会影响到dom的结构渲染,同时他会触发repaint,他会改变他本身与所有父辈元素(祖先),这种开销是非常昂贵的,导致性能下降是必然的,页面元素越多效果越明显。所以display:none才会产生reflowvisibility:hidden只会出发repaint

3

操作系统中资源分配、调度和管理的最小单位都是进程。而CPU调度的最小单位是线程。

3:排序算法的不稳定

不稳定:快选堆希  稳定:插冒归基

稳定排序

插入排序 冒泡排序  归并排序

不稳定排序

希尔排序 堆排序 快速排序 选择排序

4

第一个考点在于var a=b=5相当于拆解成var a=b;  b=5; 然后,b=5前面没有var,相当于声明为全局变量(这种方式在严格模式下会报错,此题不考虑)。所以就相当于: var b; (fun…{    var a=b;    b=5; })(); console.log(b);  //5 console.log(a);  //报错 此处报错也就是另一个考点,a声明的是函数的局部变量,在函数结束是就销毁了,所以在全局下找不到a,于是报错。

background:fixed固定背景

background:attachment设置背景图像是否固定或者随着页面的其余部分滚动

background:origin规定背景图像相对于什么位置来定位

background:clip规定背景的绘制区域

display: none;不为被隐藏的对象保留其物理空间

visibility:hidden;所占据的空间位置仍然存在,仅为视觉上的完全透明

5

bgcolor是标签属性,只有body和table tr td 元素有该属性,可以设置背景颜色,其他标签使用bgcolor没有效果使用js改变bgcolor 的语句为 document.body.bgColor="red"; 或document.getElementById(“table tr td 元素的id”).bgColor="red";D选项有三个地方错了:1.button没有bgcolor属性;2.不应该用style ;3.bgcolor中的c应该大写。在 HTML 4.01 中,不赞成使用 body 元素的 bgcolor 属性;在 XHTML 1.0 Strict DTD 中,不支持 body 元素的 bgcolor 属性。请使用 CSS 代替。

document.getElementById('XXX').style.backgroundColor="XXX";

6

假设总共100个新闻,那么真实新闻为98个,虚假新闻为2个,检验为真实的新闻 总个数为真实的检验为真实的 和虚假的检验为真实的 之和:98x(1-2%)+2x5%=96.14个,其中检验为真实的真实新闻个数即是真实的检验为真实的 个数:98x(1-2%)=96.04个,所以其真实概率为96.04/96.14=0.9989......


这是一个古典事件:

(1)基本事件数:被检验为真实的新闻 = 真新闻检验为真+假新闻检验为真=98%*(1-2%)+(1-98%)*5%

(2)有效事件数:  真新闻被检验为真 = 98% *(1-2%)

有效/基本=B选项

7

答案是: 让小今先取。

其实这里是有规律可循的,可归结为 “取余制胜” 。详解如下:

一 取余制胜(取棋子,报数游戏) 

1.每次取1~n个棋子,总数,取最后一个赢 策略:总数÷(1+n)

有余则先,拿掉余数,之后总与对手凑成1+n即可 无余则后,总与对手凑成1+n即可

2. 每次取1~n个棋子,总数,取最后一个输

策略:最狠的做法就是留给对方一枚棋子,对方不取也得取。所以想赢的关键就在于能不能取到倒数第二枚棋子。

问题转化为:每次取1~n个棋子,总数,取倒数第二枚棋子赢。 (总数-1)÷(1+n),之后同1中做法。

所以这道题,可以分两堆考虑,9个的那堆,9%(1+3) 等于1,所以小今首先取1,然后不管小天取几,都和他凑成4, 这样9这一堆,小今必定最后取。然后小天去取8那一堆,因为8%4 = 0.所以,需要后取,只要和小天所取凑够4就好OK了。

发表于 2016-09-07 11:25:07

8

1.网络模型

OSI七层模型

7 应用层:允许访问网络资源。 通信单位:报文(指的是TCP/IP协议里广义的应用层 )

6 表示层:数据的转换,加密,压缩

5 会话层:建立,管理,终止会话

4 运输层:提供可靠的进程到进程的交付和差错恢复。

3 网络层:从源到终点传送分组,提供网络互联。通信单位 数据报

2 数据链路层:将比特组织成帧结构,提供逐跳交付。通信单位 帧

1 物理层:经过媒体传送比特

2.TCP与UDP

UDP(User Datagram Protocal,用户数据报协议)

(1)简介

面向数据报的不可靠的 传输层通信协议

(2)特点

UDP不能保证可靠传输,也就更不能保证所发送的数据的到达顺序,它所实现的是尽最大的努力交付。

UDP是面向数据报文的、无连接的协议,因此它的开销低并且发送器前的时延小(因为不用建立连接啊),面向报文也使得IP层在传输UDP协议的报文时既不会拆分也不会合并。

UDP可以支持一对一、一对多、多对一、多对多的通信。

UDP没有拥塞控制功能,它的发送速率不会随着网络出现的拥塞而降低,所以它的实时性较好。这也是许多视频聊天应用采用它的原因。

(3)报文格式

TCP(Transmission Control Protocol,传输控制协议 )

(1)简介

面向连接的、可靠的、基于字节流的传输层通信协议

(2)特点

TCP协议保证可靠传输,也就是说发送的数据是什么样,接收的数据也是什么样。

TCP协议是有连接的、面向数据流的协议。有连接是说数据传送前通信双方需要建立连接、通信完毕后需要断开连接,不过这里所提到的连接都是逻辑上的连接。面向数据流的意思是说发送方应用程序发送的数据是什么顺序,接收方应用读取的接收到的数据也是什么顺序。

TCP协议提供的是端到端的通信,也就是说一条TCP连接只能提供一对一的通信。不过,一个应用可以同时建立多条TCP连接来实现与多个目标的通信。

TCP协议提供拥塞控制功能,会在网络状况良好的情况下适当提高发送/接收速率,反之则适当降低发送/接收速率。这样,将会提高对网络的利用率。

(3) 数据封包结构

10

#include

#include

#include

#include

using namespace std;

int main()

{

string st;

while (cin >> st)

{

int n;

cin >> n;

while (n--)

{

int beg, len, index;

cin >> beg >> len;

string temp = st.substr(beg, len);

index = beg + len;

reverse(temp.begin(), temp.end());

st.insert(index, temp);

}

cout << st << endl;

}

return 0;

}

11

import java.util.*;

public class Main{


    public static void main(String[] args){

        Scanner in = new Scanner(System.in);

        while(in.hasNext()){

            int n = in.nextInt();

            int s = in.nextInt();

            int l = in.nextInt();

            int count = (l+1)/(s+1);

            count = Math.min(n, count);

            if(count%13==0){

                count--;

            }

            int sum = n/count;

            int yu = n%count;

if(yu!=0){

            sum++;

            if(yu%13==0&&(count-yu)==1){//查看最后最后一张专辑的情况

            sum++;

            }

            }

            System.out.println(sum);

        }

    }

}

你可能感兴趣的:(字节跳动的面试题)