引用自:zp155334877
1)設計乙個棧結構,滿足一下條件:min,push,pop操作的時間複雜度為o(1)。
2)一串首尾相連的珠子(m個),有n種顏色(n<=10),
設計乙個演算法,取出其中一段,要求包含所有n中顏色,並使長度最短。
並分析時間複雜度與空間複雜度。
**見下:
最短摘要的生成
3)設計乙個系統處理詞語搭配問題,比如說 中國 和人民可以搭配,
則中國人民 人民中國都有效。要求:
*系統每秒的查詢數量可能上千次;
*詞語的數量級為10w;
*每個詞至多可以與1w個詞搭配
當使用者輸入中國人民的時候,要求返回與這個搭配片語相關的資訊。
方案:步驟:
1. 分詞.
2. 判斷是否搭配
一。分詞的判斷
如果不考慮歧義,可以用wm基於shift表的詞表匹配方法,在o(length(input))時間內完成分詞。
如果考慮歧義,用專用分詞系統。時間複雜度待查。
暫時不考慮歧義。
wm表占用記憶體大概5m以內.
二。判斷是否搭配
用二維向量表示10w個詞之間的搭配資訊。每個詞-詞搭配資訊占用乙個bit,共 10w * 10w bit,大概
160mbyte.
分詞完成後,可以在o(1)時間內完成搭配資訊的查詢。
上述處理在普通pc(amd 雙核2.5g hz,2g記憶體)上可以在一百-五百微秒時間範圍內完成,即每秒至少可以
處理兩千次查詢。
參考://coder:lee,20120322
#include
#include
using namespace std;
struct index
;index shortestsectionwithfullcolors(int *a,int nlength,int ncolors)
while(true)
while(ntargetlen==ncolors)
hash[a[pbegin]]--;
if(hash[a[pbegin]]==0)
ntargetlen--;
pbegin++;
if(pbegin>=nlength)
break;
}if(pbegin>=nlength)
break;
}return index;
}int main()
;int nlen=sizeof(a)/sizeof(int);
index index=shortestsectionwithfullcolors(a,nlen,3);
for (int i=index.behind;i!=index.front;)
return 0;
}
百度 2015 武漢研發筆試題
一 簡答題 1.列出至少6中內排序方法,並寫出相應的時間複雜度和空間複雜度以及穩定性 2.多執行緒中的同步互斥方法都有哪些?3.程序間通訊的方式有哪些?哪種是效率最高的?socket,pipe,共享記憶體,訊息佇列,訊號,訊號量 效率最高的是 共享記憶體。360面試中問到了共享記憶體在系統中是如何實...
2013百度研發筆試
一 簡答題 1.動態鏈結庫和靜態鏈結庫的優缺點 2.輪詢任務排程和可搶占式排程有什麼區別?3.列出資料庫中常用的鎖及其應用場景 二 演算法設計題 1.給定n是乙個正整數,求比n大的最小 不重複數 這裡的不重複是指沒有兩個相等的相鄰位,如1102中的11是相等的兩個相鄰位故不是不重複數,而12301是...
百度2014移動研發筆試題目
1.簡述計算機的儲存系統分為哪幾個層次,為什麼這樣的分層能夠提高程式的執行效率。2.浮點數在計算中如何表示,如何對浮點數判等。3.簡述tcp與udp協議的差別,兩者與http的關係。並列舉http的方法,以及常見的返回狀態碼。二.演算法與程式設計 1.設計乙個反轉字串的函式 char reverse...