給定乙個整形陣列arr,已知其中所有的值都是非負的,將這個陣列看作乙個容器,請返回容器能裝多少水。
[3,1,2,5,2,4]返回值
能裝多少水是由左右兩邊較低的邊決定的,因此採用雙指標,從開頭和最後向中間靠攏,當位置i的數小於較低邊表示可以裝水。當位置i的數大於較低邊時,更新較低邊為位置i的值。
public class maxwaterstruct ;
maxwaterstruct maxwaterstruct = new maxwaterstruct();
long l = maxwaterstruct.maxwater(arr);
system.out.println(l);
}public long maxwater (int arr)
int i = 0; // 左指標
int j = arr.length - 1; // 右指標
int maxleft = arr[i]; //桶左邊的長度
int maxright = arr[j]; // 桶右邊的長度
long ret = 0l; // 盛水總量
while(i < j)else
}elseelse}}
return ret;}}
面試常考資料結構與演算法
資料結構部分 1 陣列和鍊錶的區別。很簡單,但是很常考,記得要回答全面 c 語言中可以用陣列處理一組資料型別相同的資料,但不允許動態定義陣列的大小,即在使用陣列之前必須確定陣列的大小。而在實際應用中,使用者使用陣列之前無法確定陣列的大小,只能夠將陣列定義成足夠大小,這樣陣列的空間可能不被使用,從而造...
面試常考資料結構與演算法
資料結構部分 1 陣列和鍊錶的區別。很簡單,但是很常考,記得要回答全面 c 語言中可以用陣列處理一組資料型別相同的資料,但不允許動態定義陣列的大小,即在使用陣列之前必須確定陣列的大小。而在實際應用中,使用者使用陣列之前無法確定陣列的大小,只能夠將陣列定義成足夠大小,這樣陣列的空間可能不被使用,從而造...
面試常考資料結構與演算法
1 陣列和鍊錶的區別。很簡單,但是很常考,記得要回答全面 c 語言中可以用陣列處理一組資料型別相同的資料,但不允許動態定義陣列的大小,即在使用陣列之前必須確定陣列的大小。而在實際應用中,使用者使用陣列之前無法確定陣列的大小,只能夠將陣列定義成足夠大小,這樣陣列的空間可能不被使用,從而造成記憶體空間的...