2012騰訊實習招聘筆試附加題1求解方法

2021-06-05 15:30:21 字數 920 閱讀 7717

附加題1:問題描述大致如下:

乙個陣列a[n],求構造出乙個b[n],使得b[i]=a[0]*a[1]*...a[n-1]/a[i];不能用除法,除了迴圈變數外 不能用額外的變數 ,要求o(1)的空間複雜度,o(n)的時間複雜度。

首先我對題目是有點疑問的:題目所說的o(1)的空間複雜度,那麼意思是:

1、b陣列占用的空間是原來a的空間?

2、還是b另外申請乙個陣列空間,而不用包括在o(1)中呢?

對於第一種假設,本身愚鈍,萬想不得其解,希望各位高手給予指點

對於第二種假設,自己實現**餘下:

想了n久自己寫下如下**:

public

classtecenttest

temp = 1;

for(intj = a.

length

- 2; j >= 0; j--)

b[a.length

- 1] = b[a.

length

- 1];

}public

static

voidmain(string args) ;

intb =new

int[a.

length

]; tt.change(a, b);

for(inti = 0; i < b.

length

; i++) }}

/*測試結果:

* 720 360 240 180 144 120

* */

以上**空間複雜度o(1),時間複雜度o(n)

梅氏砝碼(2014騰訊實習筆試附加題)

原題大意 用4個砝碼稱出重量在1到40克內的鑽石,這4個砝碼分別多重 鑽石重量為整型 解法 梅氏砝碼。假設第i個砝碼的重量為a i 且a i a i 1 i 1個砝碼可以表示 1,n n a 1 a 2 a 3 a i 1 那麼新增砝碼i後,可以表示的範圍為 1,n u a i n,a i n 為使...

2012 4 7騰訊實習生筆試題 附加題1

1 根據a n 陣列求b n b i a 0 a 1 a n 1 a i 要求空間複雜度是o 1 時間複雜度是o n 除了a n b n 和迴圈計數器,不使用其他變數,不能使用除法。第一種方法 void f int a,int b,int n if n 1 b 0 1 實現b i a i a i 1...

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 分析 ...