100題 第四十題 百度研發筆試題

2021-09-30 15:04:47 字數 2362 閱讀 2077

一,題目

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 設計乙個系...