1. 兩個有序鏈表合併, 時間複雜度是多少? 什麼狀況下不 work ?php
當鏈表有環或鏈表有公共節點時不 workhtml
2. N 個數, 任意選出兩個數求其和, 結果的集合爲 S, S 中全部元素之和是多少 ?ios
樸素解法: 枚舉, o(n^2) 的複雜度算法
3. A,B 兩個有序數組, 從 A, B 各選出一個元素, 使其和爲 target, 給出時間複雜度.數據庫
樸素求法: 枚舉 A 中的元素, 到 B 中找 target - A[i], 時間複雜度爲 o(n*logn)編程
編程之美單個有序鏈表求和爲 target 的兩個元素的位置的變形題. 數組
設置兩個遊標 i, j 分別在 A[0], B[n-1] 處. A[i] + B[j] < target -> i ++. else j --;緩存
若是沒有找到, 再設 i,j 分別在 A[m-1], B[0] 處, 再遍歷一遍.服務器
時間複雜度爲 o(m+n)數據結構
4. 在一個 o(n*n) 的方塊中, 有一條環形路徑, 該路徑上的點標號爲 1, 其餘座標上的點標號爲 0, 求出環形路徑圍起來的面積.
Leetcode 原題, 使用 BFS, DFS 均可以.
5. 進程之間的數據共享
a. 共享內存
b. 管道
c. 消息隊列
d. 信號量
e. 本地域 socket
6. 百度地圖中存在須要標註的不少點,而且這些點都須要帶描述,現將描述假設爲矩形,而且能夠位於點的左邊或右邊,但點不能移動,若是兩個點間的描述發生覆蓋,則須要將其中的一個點進行刪除
1.在一個區域內,請設計算法將有效的點進行輸出(儘量多的點)?
2.若是區域足夠大,點足夠多,算法會出現性能的瓶頸,請設計詳細的算法來講明並解決問題?
1. 默認描述在點的左邊, 若左邊不可放置則放到右邊, 若右邊也不可放置, 把該點刪除
2. 能夠對點附上權值, 優先擺放權值較高的點
7. 字符串 "alibaba" 共有幾種排列方式
7!/(3!*2!) = 840
8.
#include <iostream> #include <stdio.h> using namespace std; class Base { public: int Bar(char x) { return (int)x; } virtual int Bar(int x) { return (2*x); } }; class Derived : public Base { public: int Bar(char x) { return (int)(-x); } int Bar(int x) { return (x/2); } }; int main() { Derived Obj; Base *pObj = &Obj; printf("%d\n", pObj->Bar((char)(100))); printf("%d\n", pObj->Bar(100)); }
輸入 100, 50. As expected.
9. 下列那個不是線性表? (c)
A. 一個線程能夠改變另外一個線程的程序計數器(program counter)
B. 一個線程既不能讀也不能寫另外一個線程的棧(stack)
C. 一個線程能夠讀寫另外一個線程的寄存器(register)
D. 以上都不對
11. 關於雙鏈表的搜索給定元素操做的說法正確的是
A. 從兩個方向搜索雙鏈表,比從一個方向搜索雙鏈表的速度慢
B. 從兩個方向搜索雙鏈表,比從一個方向搜索雙鏈表的方差要小
C. 從兩個方向搜索雙鏈表,比從一個方向搜索雙鏈錶速度要快
D. 以上說法都不正確
我的傾向於選擇 D, 單方向和雙方向是等價的
12. 對n個數字進行排序,期中兩兩不一樣的數字的個數爲k,n遠遠大於k,而n的取值區間長度超過了內存的大小,時間複雜度最小能夠是
A. 720/13分鐘 B. 720/11分鐘 C. 60分鐘 D. 以上都不正確
A. R中的沙子和S中的小米同樣多
B. R中的沙子比S中的小米少
C. R中的沙子比S中的小米多
D. 沒法判斷
假設 R 中有小米 a 勺, S 中有小米 b 勺, 通過兩步倒騰, A 正確.
15. 假定拋出的硬幣落地以後正反兩面出現的機率分別是1/2。那麼拋10次和100次硬幣(分別稱爲T10和T100)相比,如下說法正確的是
A. T100出現一半的正面比T10出現一半正面的機率更大
B. T100前3次都是正面的機率比T10前3次都是正面的可能性大
C. T100正面次數的方差小於T10出現正面次數的方差
D. T100出現正面的比例比T10出現正面的比例在(0.45,0.55)區間中的可能性更大。
這種題目能夠直接把 10, 100 替換成 2, 3 來計算. 不用筆計算也知道 D 是正確的, 畢竟, 大數定理嘛
16. 某福彩機構推出了一款簡單的猜謎遊戲:遊戲玩家只需交納n元,賭紅或者黑。若是開獎結果與遊戲玩家所賭的顏色相同,則玩家除獲得交納的n元賭資外,還能夠得到n元做爲獎勵;不然該玩家失去交納的n元賭資。爲了遊戲公平,開獎是紅或者黑的機率均爲1/2。某遊戲玩家想出了一個玩法:開始出100元參與賭博,而後按照以下規則進行遊戲,若是輸掉,而且賭資充足,就把已經輸了的總錢數翻倍做爲賭資進行賭博;不然,就中止該遊戲。假定該機構賭資無限,而玩家的賭資比較有限,如下關於該玩家退出遊戲時的情形的評論中合理的是:
A. 該玩家的策略能夠保證遊戲結束時贏錢數的指望爲正數
B. 該福彩機構長期會賠錢
C. 該玩家會有必定機率在遊戲結束時輸錢,但輸得很少
D. 該玩家贏的可能性比輸的可能性大
很是有意思的一道題, 我之前也想過去賭場用這招, 但歷來沒計算過到底會輸仍是會贏, 不過以賭場的立場來看, 這種玩法他們確定考慮過了, 因此玩家輸的面應該是比較大.
爲了方便計算, 假設玩家的錢足夠玩 5 次
那麼會發生下面幾種狀況(0x001 表示第三場才贏):
0x1 機率 0.5 收益 n 投入 n
0x01 機率 (0.5)^2 收益 n 投入 2n
0x001 機率 (0.5)^3 收益 3n 投入 6n
0x0001 機率 (0.5)^4 收益 9n 投入 18n
0x00001 機率 (0.5)^5 收益 27n 投入 54n
0x00000 機率 (0.5)^5 收益 -81n 投入 54n
計算指望
發現指望是 0
由於玩家的錢是有上限的, 因此, 有可能輸
玩家要是輸錢的話, 那就輸慘了, 因此不知道選啥
17. 有16瓶水,其中只有一瓶水有毒,小白鼠喝一滴以後一小時會死。請問最少用
A. 1只
B. 3只
C. 4只
D. 16只
15 = 0x1111
假設用 4 個小白鼠, 分別爲 a b c d
對小白鼠的喝法編號
a b c d
0 0 0 1
0 0 1 0
...
1 1 1 1
這樣, 小白鼠的死亡組合對應第幾瓶有毒.
18. 有一臺4核CPU的服務器,上面運行着1種在線服務。若是該在線服務處理一個請求在非獨佔IO上的等待時間和CPU計算上消耗的時間比爲2:1,假定IO帶寬充足,那麼至少開
不會.
19. 有一種語言稱爲lua,裏面的數字只有一種類型(number),其實是雙精度浮點數。沒有各類位數的整數,如32位、64位整數等。那麼關於該語言的說法錯誤的是
A. 該語言能夠用number 類型的變量做爲數組下標
B. 該語言能夠表示任意32位數字整數的數字ID
C. 該語言沒法實現32位數字整數的按位與、或、異或運算
D. 該語言能夠正常進行雙精度浮點數運算
不會.
20. 一個在線服務一般須要讀取存儲着海量數據的數據庫。爲了提升服務的處理速度,一般須要加cache(緩存)。如下場景中不合適使用cache的是
A. 數據庫中每條數據被訪問到的機率近似相等,且獨立
B. 使用了多線程機制的服務
C. 單條數據尺寸大小的數據
D. 有着大量訪問的服務
使用 cache 的潛在條件是數據的局部性, 假如每條數據被訪問到的機率相等, cache 的意義不大.
21. 有1023個兩兩不一樣的整數,取值範圍是1到1024,其按位異或的結果的取值範圍是 。
A. 0到1024
B. 0,1025到2047
C. 1到1024
D. 2到2048以前的所有偶數
枚舉 1~4, 1~5, 以爲 B 對
22. 七夕節n戀人(n>=2)圍成一圈舉行篝火晚會。晚會的規則是:男女相同,且每對戀人處在相鄰的位置上。請問有多少種不一樣的圈子?
A. (2n-1)!/2 B. 2(n-1)! C. 2n(n-1)! D. (2n)!
搜索了一下轉圈求排列數的問題, 找到一個比較好的解法.
大意是, 先固定一我的不動, 而後對其餘人全排列. 這道題, 前固定一對男女, 而後對其餘對男女全排列, 每對男女又有兩種坐法, 因此答案爲 (n-1)!*2^n
兩道擴展題
作題的時候關於n個元素圍成一圈有兩個題目,解法卻互相沖突:
例一:
(2005上海,第11題)某小組有四位男性和兩位女性,六人圍成一圈跳集體舞,不一樣排列方法有多少種?( )
A. 720 | B. 60 | C. 480 | D. 120 |
解法:將六我的排成一圈,共有種方法。但注意到下圖顯示的六種狀況對應着相同的相對位置,應該將相同狀況別除。因此共有種方法。
例二:
用6枚不一樣的珍珠串一條項鍊,共有多少種不一樣的串法?( )
A. 720 | B. 60 | C. 480 | D. 120 |
解法:N枚不一樣的珍珠串一條項鍊,有串法;即種;
我我的認爲除以n纔是對的,而不是除以2n。
請高手指教!!!
連接: http://bbs.qzzn.com/read.php?tid-14125136.html