附加題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 分析 ...