騰訊 2023年實習生筆試

2021-06-14 04:22:48 字數 924 閱讀 4636

題目:

給定一陣列a[n],我們希望構造陣列b [n],其中b[j]=a[0]*a[1]…a[n-1] / a[j],在構造過程中,不允許使用除法:

要求o(1)空間複雜度和o(n)的時間複雜度;

除遍歷計數器與a[n] b[n]外,不可使用新的變數(包括棧臨時變數、堆空間和全域性靜態變數等);

實現程式(主流程式語言任選)實現並簡單描述。

這道題,具體解法大家可看下:

下面我說說我的一些收穫:

1)o(1)的空間複雜度:常量級變數,但不可使用新的變數,題目有要求

對於如此有規律的b[j],可以像數學裡的數列一樣,先寫出幾個式子,找找規律。

b[4] = a[0] * a[1] * a[2] * a[3]         ;

b[3] = a[0] * a[1] * a[2] *           a[4];

b[2] = a[0] * a[1] *           a[3] * a[4];

b[1] = a[0] *           a[2] * a[3] * a[4];

b[0] =           a[1] * a[2] * a[3] * a[4];

可看到兩個三角形。

表示第一次迴圈,形成左上角

(**見)

b[0] = 1;  

inti;  

for(i = 1; i 

b[i] = b[i - 1] * a[i - 1];  

第二次迴圈,完成計算b[n].

for(i = maxn - 1; i >= 1; i--)  

注意,第二次迴圈時,像博主先前說的

inttemp = 1;  

for(i = maxn - 2; i >= 0; i--)  

由於用了新的變數temp,不符合『不可使用新的變數』這一規定。

2012騰訊實習生筆試題

問題描述 兩個陣列a n b n 其中a n 的各個元素值已知,現給b i 賦值,b i a 0 a 1 a 2 a n 1 a i 要求 1.不准用除法運算2.除了迴圈計數值,a n b n 外,不准再用其他任何變數 包括區域性變數,全域性變數等 3.滿足時間複雜度o n 空間複雜度o 1 分析 ...

騰訊2012實習生招聘筆試題

由此觀之,基本上我知道的錯誤率就會很小。像基本的資料結構與演算法。但是不知道的錯誤率接近100 了,比如作業系統 資料庫 linux 設計模式的題。但是這些題其實也是很基礎的,與考研題類似,甚至還沒有達到考研題的難度。但是現在主要是攻破c 語言和資料結構與演算法的堡壘,其他型別的題目只能等後期 建設...

騰訊2012實習生筆試題 答案解析

選擇 d。迴圈佇列的front和rear必有乙個不指向實質元素,不然無法判斷佇列滿或空。c。是這樣的原理,磁碟會一直朝某個方向旋轉,不會因為處理資料而停止。本題要求順序處理r1到r10,起始位置在r1,一周是20ms,共10個記錄,所以每個記錄的讀取時間為2ms。首先讀r1並處理r1,讀r1花2ms...