字节跳动一面(后端开发)

字节跳动一面(后端开发)

1 说一说mysql数据库优化


优先进行索引优化,然后解决慢查询,

慢查询

1 索引没起作用。字段没建立索引,或者是索引没有起作用

2 数据库结构不合理

3 分解关联查询 将大查询分成多个小查询

4 优化limit分页


2 怎么找到慢查询?

去分析慢查询日志,找出慢查询的sql 

看运行速度从运行时间短慢来找出慢查询的sql


3 索引怎么创建?

 create index 命令并为索引指定它的域

4 索引具体优化的方式?

1 优化查询性能,使用explain关键字

2 mysql是开放的 改变内部变量索引缓冲区长度



手撕代码


1 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。

有思路 没打出来

题目中给了我们先序遍历和中序遍历;在二叉树的前序遍历中,第一个数字总是树的根结点的值。但在中序遍历序列中,根结点的值在序列的中间,左子树的结点的值位于根结点的值的左边,而右子树的结点的值位于根结点的值的右边。因此我们需要扫描中序遍历序列,才能找到根结点的值。

题目给出的前序遍历序列的第一个数字1就是根结点的值。扫描中序遍历序列,就能确定根结点的值的位置。根据中序遍历的特点,在根结点的值1前面的3个数字都是左子树结点的值,位于1后面的数字都是右子树结点的值。

由于在中序遍历序列中,有3个数字是左子树结点的值,因此左子树总共有3个左子结点。同样,在前序遍历的序列中,根结点后面的3个数字就是3个左子树结点的值,再后面的所有数字都是右子树结点的值。这样就在前序和中序遍历的两个序列中,分别找到了左右子树对应的子序列。

我们已经分别找到了左右子树的前序和中序遍历,我们可以用同样的方法分别去构建左右子树,即递归实现。

附带详解https://blog.csdn.net/u013132035/article/details/80519895

二叉搜索树的第k个结点

限定语言:Javascript_V8、Python、C++、Javascript、Php、C#、Java

给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8)    中,按结点数值大小顺序第三小结点的值为4。

class Solution {

    private int res=0,count=0;

    public int kthLargest(TreeNode root, int k) {

        rec(root,k);

        return res;

    }

    public void rec(TreeNode root,int k){

        if(root.right!=null){

            rec(root.right,k);

        }

        if(++count==k){


            res= root.val;

           return;

        }


         if(root.left!=null){

            rec(root.left,k);

        }

    }

}

说一下解题思路?


先来个层次遍历二叉树,得到所有的节点的值,然后排序,取到第k大的节点的值

这个只是值,而不是节点,

想办法得到具体的节点信息,

重新遍历下该二叉树,

得到节点值为该值的节点,

然后返回


最后问一个io是什么?

我知道的是影响mysql速度的主要在I/O成本和CPU成本的消耗上

I/o就是数据存储在硬盘上,我们想要进行某个操作需要将其加载到内存中,这个过程的时间被称为I/O成本,我能想起来的就这些了


你经常敲代码吗框架怎么样


最近秋招,经常刷题,敲代码能力还可以,框架学了Spring Springmvc Mybatis


你有什么想问我的吗?

答:我想知道我投递的是后端开发,现在给我的邮件写的是ios 安卓开发 我有点疑惑,还有有机会转正吗?

Ios安卓不了解没关系 无经验也可以 我们会培训 转正这个得看实习人数和职位空缺数,还是有一些机会的


嗯今天面试先到这里等邮件通知


好的老师再见

你可能感兴趣的:(字节跳动一面(后端开发))