mysql的电话面试题_以往百度电话面试题
1、一個概率題:54張撲克牌,除去兩張大小王剩下52張撲克牌。問紅桃A和黑桃A同時被一個人拿到的概率是多少?C(4,1)*C(50,11)/C(52,13)???假設分為四個人拿,每人拿13張。2、給一組數,其中只有一個數是重復了奇數次,其余都重復了偶數次,如何找出奇數次的那個數ans=0,for?i?in?1?to?n?,?ans^=num[i]?最后qns為所求
把所有的數異或,最后剩下的就是那個數了3、上千萬條記錄,統計出重復記錄最多的前N條。先統計每個記錄出現的次數(hash),再求第N大元素(經典法)4、一個N個整數的無序數組,給你一個數sum,求出數組中是否存在兩個數,使他們的和為sum
O(nlg(n))先排序,然后兩個指針從數組的兩端向中間靠攏
《編程之美》一書有講
5、談談你對數據庫中索引的理解
如果對于一個數據庫表中的訪問比較頻繁,那么可以考慮建立索引,根據搜索語句的不同建立的索引也不相同,如果查詢語句大多是=什么數據的話,或者是一個范圍的話,那么可以建立b+樹索引,如果所搜索的字段值的唯一性比較好,那么可以考慮建立位圖索引,以節約空間,但是如果查詢語句大多是搜索空值,那么沒有必要建立索引了,因為空值是沒有辦法建立索引的。
在經常用在連接的列上,這些列主要是一些外鍵,可以加快連接的速度;
在經常需要排序的列上創建索引,因為索引已經排序,這樣查詢可以利用索引的排序,加快排序查詢時間
不應該建立索引的地方:訪問比較少,值得范圍很少(例如性別,年齡),經常進行修改的。
如果表的行數比較小的話,沒有必要建立索引。
6、現在普通關系數據庫用得數據結構是什么類型的數據結構
B+樹?bitmap
7、索引的優點和缺點
優點:
第一,可以大大加快數據的檢索速度,這也是創建索引的最主要的原因。
第二,通過創建唯一性索引,可以保證數據庫表中每一行數據的唯一性。
第三,可以加速表和表之間的連接,特別是在實現數據的參考完整性方面特別有意義。例如,有些搜索語句經常需要對兩個表同時進行join,對于這兩個表進行join后的索引,可以大大加快訪問這兩個表的速度。
第四,如果索引是有序的,那么在搜索一個范圍時,可以很快給出結果。而不用進行排序。
缺點:
第一,時間:創建索引和維護索引要耗費時間,這種時間隨著數據量的增加而增加。
第二,空間:索引需要占物理空間,除了數據表占數據空間之外,每一個索引還要占一定的物理空間,如果要建立聚簇索引,那么需要的空間就會更大。
第三,維護難度:當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了數據的維護速度。
8、session和cache的區別是什么
Session?是單用戶的會話狀態。
當用戶訪問網站時,產生一個?SESSIONID。并存在于COOKIES中。每次向服務器請求時,發送這個COOKIES,再從服務器中檢索是否有這個SESSIONID保存的數據。。。
而?CACHE,則是服務器端的緩存,是所有用戶都可以訪問和共享的。
9、如果有幾千個session,怎么提高效率
分子目錄存放session提高效率
10、session是存儲在什么地方,以什么形式存儲的。
session是存在服務器的內存中?每個會話對應一個sessionId通過sessionId開區分是那個會話的session,是以鍵值對的形式存儲hashtable
Tomcat?中的?Session?是放在?org.apache.catalina.session.ManagerBase?類中,以?HashMap?格式存放,key?為?sessionId,?value?為?org.apache.catalina.Session?接口,這個接口由?org.apache.catalina.session.StandardSession?類實現,這個類同時實現了HttpSession?接口。實際上?Tomcat?中所使用的?HttpSession?實現并不把?StandardSession?拿來直接使用的,而是為這個類做了個?org.apache.catalina.session.StandardSessionFacade?的門面,這個門面什么事情都沒做過,只是委托其內部屬性的?StandardSession?去做。另外,StandardSession,也就是?HttpSession?在?Tomcat?中實現的根源,其中的數據,也就是我們采用?session.setAttribute(key,?value);?設置進去的值是采用一個?Hashtable?來存放的。
11、程序的調試
看錯誤報告,alert,print,設置斷點,messagebox,
Application是公共的,所有人都能看到,所以可以用來做聊天室,session是私有的,每個客戶端都存在一個不同的session生存期正常是20分鐘,也可以自己設定為1分鐘或2個小時cookie是保存在本機的文件,記錄短小的信息,除非你讓cookie過期,否則會一直存在viewstate類似于asp中的hidden控件,用來記錄頁面中的控件的狀態的,主要在頁面間信息傳遞時用,cache是緩存,用來記錄已經執行過的一些數據,比如讀取數據庫,目的是加速顯示,減少服務器的負擔,過期時間也是可以自己設定的,
13、對給定的上億條無序的url,請按照domain、site以及path分別排序,并請指出排序過程中可能會遇到的哪些問題?如何提高效率?
14、內存中有一個長數組,條目數為10萬,數組單元為結構體struct?array,sizeof(struct?array)為512字節。結構有一int型成員變量weight。現需要取得按weight值從大到小排序的前500個數組單元,請實現算法,要求效率盡可能高。
思路:這題屬于排序的內容,題目要求只排序前500個數組單元,則在所有常用算法中,堆排序不僅能實現要求,還能達到n*lg(n)的時間復雜度,相對較快。因此,用堆排序解決。算法如下:1,將長數組按照變量weight調整為最大堆2,取第一個元素和最后一個元素交換3,再執行1,2總共循環500次4,取數組的最后500個元素,就是排序的前500個單元
15、如何用兩個指針檢測一個鏈表是否為帶回路(也就是循環鏈表)
用兩個步長相差1的指針在鏈表中移動,如果有回路,肯定兩個指針會相遇的
16、有一百個人,其中有一個是明星。明星不認識任何人,其他人都認識明星以及若干個其他人。你可以找任意兩個人,問他們互相是否認識。?問:如何以最快的方式找出明星。
答案是:找第一個人,問是否認識第二個。如果認識,說明第一個人不是明星,排除;如果不認識,說明第二個人不是明星,排除。以此類推,每次都可以排除一個人,最多99次。
17、如何用兩個隊列模擬棧。
假設queuea和queueb。
入棧:由queuea入隊列
出棧:
1.如果queuea.size>1,queuea元素出隊列到queueb,但queuea保留一個元素,并出隊列
2.如果queuea.size=1,queuea出隊列
3.如果queuea.size=0,且queueb.size>0,queueb所有元素出隊列到queuea,且queuea再導出元素到queueb,但queuea保留一個元素,并出隊列
4.如果queuea.size=0&?queueb.size=0,沒有元素可出棧
18、如何用兩個堆棧模擬隊列
假設instack和outstack。
入隊列:由instack入棧
出隊列:
1.如果outstack為空,instack所有元素出棧到outstack
2.如果outstack不為空,outstack出棧
3.如果outstack為空,沒有元素可出隊列
19、如何找到鏈表的中間元素呢?
1.?如果是雙向鏈表,那么設置兩個指針,一個指向頭
一個指向尾,指向頭的指針和指向尾的指針同時向后向前移動,
a.當他們的next為對方的時候,這兩個指針指向中間的兩個元素
b.上面的情況時偶數個元素的情況,如果是奇數個元素呢?
這個時候需要判斷他們指向的是不是同一個元素,如果是,
那么這個元素就是中間的元素
所以,雙向鏈表需要判斷兩種情況,
當他們的next為對方的時候或者同一個元素的時候,
這個時候就找到了中間的元素
2.如果是單鏈表,情況稍微復雜點。
這個時候還是需要設置兩個指針,都指向鏈表頭,但是移動的速度不一樣
其中一個指針的移動速度是另外一個的兩倍。
當速度快的指針沒有next和next的next的時候,循環結束
a.當單鏈表只有一個元素的時候,直接結束
b.當有兩個元素的時候,直接結束
當有三個或以上元素的時候,循環即可。循環結束時,
速度慢的指針指向的就是中間的元素。
但是當單鏈表元素有偶數個的時候,上面的辦法只能找出來一個
中間元素。所以在指針移動的時候記錄元素的個數,如果是偶數個元素,
那么速度慢的指針指向的元素和這個元素的next都是中間元素。
20、多個線程訪問共享內存時應該怎么辦
21、智力題目
一個小猴子邊上有100根香蕉,它要走過50米才能到家,每次它最多只能搬50根香蕉,它每走1米就要吃掉一根,請問它最多能把多少根香蕉搬到家里?
設Y為要求的香蕉最大剩余數,X為要求的那個點(X米),可以列出方程式:
1.?Y=(100-3X)?-?(50-X)=50-2X?所以x越小y越大
2.?(100-3X)<=50剩余的香蕉數小于等于50,否則拿不了,x>=16又2/3因此x=17
Y=16
很容易求出Y=16
總結
以上是生活随笔為你收集整理的mysql的电话面试题_以往百度电话面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中怎么表示整数的点称为整点_
- 下一篇: python查微信好友是否删除自己_Py