字節(jié)跳動一面(后端開發(fā))

字節(jié)跳動一面(后端開發(fā))

1 說一說mysql數(shù)據(jù)庫優(yōu)化


優(yōu)先進行索引優(yōu)化,然后解決慢查詢,

慢查詢

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

2 數(shù)據(jù)庫結(jié)構(gòu)不合理

3 分解關(guān)聯(lián)查詢?將大查詢分成多個小查詢

4 優(yōu)化limit分頁


2 怎么找到慢查詢?

去分析慢查詢?nèi)罩?,找出慢查詢的sql?

看運行速度從運行時間短慢來找出慢查詢的sql


3 索引怎么創(chuàng)建?

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

4 索引具體優(yōu)化的方式?

1 優(yōu)化查詢性能,使用explain關(guān)鍵字

2 mysql是開放的 改變內(nèi)部變量索引緩沖區(qū)長度



手撕代碼


1 重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結(jié)果,請重建出該二叉樹。假設(shè)輸入的前序遍歷和中序遍歷的結(jié)果中都不含重復(fù)的數(shù)字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹并返回。

有思路 沒打出來

題目中給了我們先序遍歷和中序遍歷;在二叉樹的前序遍歷中,第一個數(shù)字總是樹的根結(jié)點的值。但在中序遍歷序列中,根結(jié)點的值在序列的中間,左子樹的結(jié)點的值位于根結(jié)點的值的左邊,而右子樹的結(jié)點的值位于根結(jié)點的值的右邊。因此我們需要掃描中序遍歷序列,才能找到根結(jié)點的值。

題目給出的前序遍歷序列的第一個數(shù)字1就是根結(jié)點的值。掃描中序遍歷序列,就能確定根結(jié)點的值的位置。根據(jù)中序遍歷的特點,在根結(jié)點的值1前面的3個數(shù)字都是左子樹結(jié)點的值,位于1后面的數(shù)字都是右子樹結(jié)點的值。

由于在中序遍歷序列中,有3個數(shù)字是左子樹結(jié)點的值,因此左子樹總共有3個左子結(jié)點。同樣,在前序遍歷的序列中,根結(jié)點后面的3個數(shù)字就是3個左子樹結(jié)點的值,再后面的所有數(shù)字都是右子樹結(jié)點的值。這樣就在前序和中序遍歷的兩個序列中,分別找到了左右子樹對應(yīng)的子序列。

我們已經(jīng)分別找到了左右子樹的前序和中序遍歷,我們可以用同樣的方法分別去構(gòu)建左右子樹,即遞歸實現(xiàn)。

附帶詳解https://blog.csdn.net/u013132035/article/details/80519895

二叉搜索樹的第k個結(jié)點

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

給定一棵二叉搜索樹,請找出其中的第k小的結(jié)點。例如, (5,3,7,2,4,6,8)? ? 中,按結(jié)點數(shù)值大小順序第三小結(jié)點的值為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);

????????}

????}

}

說一下解題思路?


先來個層次遍歷二叉樹,得到所有的節(jié)點的值,然后排序,取到第k大的節(jié)點的值

這個只是值,而不是節(jié)點,

想辦法得到具體的節(jié)點信息,

重新遍歷下該二叉樹,

得到節(jié)點值為該值的節(jié)點,

然后返回


最后問一個io是什么?

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

I/o就是數(shù)據(jù)存儲在硬盤上,我們想要進行某個操作需要將其加載到內(nèi)存中,這個過程的時間被稱為I/O成本,我能想起來的就這些了


你經(jīng)常敲代碼嗎框架怎么樣


最近秋招,經(jīng)常刷題,敲代碼能力還可以,框架學(xué)了Spring Springmvc Mybatis


你有什么想問我的嗎?

答:我想知道我投遞的是后端開發(fā),現(xiàn)在給我的郵件寫的是ios 安卓開發(fā) 我有點疑惑,還有有機會轉(zhuǎn)正嗎?

Ios安卓不了解沒關(guān)系 無經(jīng)驗也可以 我們會培訓(xùn) 轉(zhuǎn)正這個得看實習(xí)人數(shù)和職位空缺數(shù),還是有一些機會的


嗯今天面試先到這里等郵件通知


好的老師再見

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容