一百度筆試題目分析

2021-08-26 17:31:07 字數 598 閱讀 2296

問題:有101個數,為[1,100]之間的數,其中乙個數是重複的,如何尋找這個重複的數,其時間複雜度和空間複雜度是多少?

解:假設這101個數存放在data[101]的陣列中

一》 採用hash的方法,該方法可以申請乙個100個位元組,然後掃瞄這個101個資料,該方法需要的空間為o(n),時間複雜度為o(n)

char buff[101];

memset(buff, 0 , sizeof(buff));

for (int i = 0; i < 101; ++i)

buff[data[i]]++;

int ires;

for (ires = 1; ires <= 100 && buff[ires] != 2; ++ires);

cout << ires <

三》 空間最優化演算法, 空間複雜度為o(1)

int inum = 0;

for (int i = 0; i < 101; ++i) inum += data[i];

int ires = inum - (100 + 1)*(100/2);

百度筆試題目

1 此題10分 對任意輸入的正整數n,編寫c程式求n 的尾部連續0的個數,並指出計算複雜度。如 18!6402373705728000,尾部連續0的個數是3。不用考慮數值超出計算機整數界限的問題 答 此題可以轉化成尋找能夠被5整除和被10整除的數,然後統計該數中末尾0的個數和能被5整除的次數。inc...

百度筆試題目

假定有20個有序陣列,每個陣列有500個數字,數字型別32位uint數值,現在需要取出這10000個數字中最大的500個,怎麼做?思路 20個有序陣列,不妨設數序為降序。首先把20個陣列中最大的 也就是a i 0 進行大堆排序,輸出堆頂元素 最大 在輸出的那個元素之前所在的陣列中,取下乙個元素,放到...

百度筆試題目及答案

請簡要描述一下hadoop,spark,mpi三種計算框架的特點以及分別適用於什麼樣的場景 a hadoop 基於分布式檔案系統hdfs的分布式批處理計算框架。適用於資料量大,spmd 單程式多資料 的應用。b spark 基於記憶體計算的平行計算框架。適用於需要迭代多輪計算的應用。c mpi 基於...