一,題目
1)設計乙個棧結構,滿足一下條件:
min,
push
,pop
操作的時間複雜度為
o(1)。2)
一串首尾相連的珠子(m個
),有n種顏色
(n<=10)
,設計乙個演算法,取出其中一段,要求包含所有
n中顏色,並使長度最短。
並分析時間複雜度與空間複雜度。 3)
設計乙個系統處理詞語搭配問題,比如說
中國和人民可以搭配,
則中國人民,
人民中國都有效。要求: *
系統每秒的查詢數量可能上千次;
*詞語的數量級為
10w;
*每個詞至多可以與
1w個詞搭配
當使用者輸入中國人民的時候,要求返回與這個搭配片語相關的資訊。
第一題解法:
借助輔助棧,儲存最小值,
且隨時更新輔助棧中的元素。
例如:1)
push 2 6 4 1 5
stack a stack b
(輔助棧)
4: 5 1 //push5,min=p->[3]=1 ^
3: 1 1 //push 1,min=p->[3]=1 | //
此刻push進a
的元素1小於b
中棧頂元素
22: 4 2 //push 4,min=p->[0]=2 |
1: 6 2 //push 6,min=p->[0]=2 |
0: 2 2 //push 2,min=p->[0]=2 |
push
第乙個元素進
a,也把它
push進b
,當向a push
的元素比
b中的元素小,
則也push進b
,即更新
b。否則,不動
b,儲存原值。
向棧a push
元素時,順序由下至上。
輔助棧b
中,始終儲存著最小的元素。
2)pop棧a
中元素,
5 1 4 6 2
a b ->
更新4: 5 11 //pop 5,min=p->[3]=1|
3: 1 12 //pop 1,min=p->[0]=2|
2: 4 22 //pop 4,min=p->[0]=2|
1: 6 22 //pop 6,min=p->[0]=2|
0: 2 2null //pop2,min=null v
當pop a
中的元素小於
b中棧頂元素時,則也要
popb
中棧頂元素。
第二題解法:
題目類似於:給定
乙個很長的字串
str還有乙個字符集比如
找出str
裡包含的最短子串(這裡str首尾相連)
比如,字符集是
a,b,c
,字串是
abdcaabc
,則最短子串為
abc如果不是首尾相連的:
#include using namespace std;
#define maxn 10
int colors[maxn];//record the counter of one color
int colorscounter;
void find(int arr,int len, int colorsneed)
if (i-j+1
如果帶環的話:
再多加一次迴圈,從上一次得到最小長度的地方開始,到開始階段,第一次滿足所有元素的地方。
#include using namespace std;
#define maxn 10
int colors[maxn];//record the counter of one color
int colorscounter;
void find(int arr,int len, int colorsneed)
if (i-j+11)
if (i-j+1+len=len)
offset = 0-i;
}cout << endl;
}int main()
; int m = sizeof(arr)/sizeof(arr[0]);
int n = 6;
find(arr,m,n);
return 0;
}
第三題解法:
用二維向量表示10w個詞之間的搭配資訊。每個詞-詞搭配資訊占用乙個bit,共 10w * 10w bit,大概160mbyte.分詞完成後,可以在o(1)時間內完成搭配資訊的查詢。
百度 2015 武漢研發筆試題
一 簡答題 1.列出至少6中內排序方法,並寫出相應的時間複雜度和空間複雜度以及穩定性 2.多執行緒中的同步互斥方法都有哪些?3.程序間通訊的方式有哪些?哪種是效率最高的?socket,pipe,共享記憶體,訊息佇列,訊號,訊號量 效率最高的是 共享記憶體。360面試中問到了共享記憶體在系統中是如何實...
2013百度研發筆試
一 簡答題 1.動態鏈結庫和靜態鏈結庫的優缺點 2.輪詢任務排程和可搶占式排程有什麼區別?3.列出資料庫中常用的鎖及其應用場景 二 演算法設計題 1.給定n是乙個正整數,求比n大的最小 不重複數 這裡的不重複是指沒有兩個相等的相鄰位,如1102中的11是相等的兩個相鄰位故不是不重複數,而12301是...
40 百度研發筆試題(棧 演算法)
引用自 zp155334877 1 設計乙個棧結構,滿足一下條件 min,push,pop操作的時間複雜度為o 1 2 一串首尾相連的珠子 m個 有n種顏色 n 10 設計乙個演算法,取出其中一段,要求包含所有n中顏色,並使長度最短。並分析時間複雜度與空間複雜度。見下 最短摘要的生成 3 設計乙個系...