hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如:,連續子向量的最大和為8(從第0個開始,到第3個為止)。你會不會被他忽悠住?
要根據前面的數字和大於0和小於0分兩種情況進行討論;
public
int findgreatestsumofsubarray(int array)
int tempsum = 0;
int sum = array[0];
for (int i = 0; i < array.length; i++)
return sum;
}
public
void
testfindgreatestsumofsubarray() ;
assertequals(8, solution.findgreatestsumofsubarray(array));
}
演算法與資料結構 動態規劃
動態規劃 dp 的基本思想是 當前子問題的解可由上一子問題的解得出。動態規劃演算法通常基於由乙個遞推公式 狀態轉移方程 和若干個初始狀態 狀態 應用 1 lis longest increasing subsequence 求乙個陣列中的最長非降子串行的長度。子問題 我們可以考慮先求a 0 a 1 ...
演算法與資料結構 動態規劃
用遞迴求解問題時,反覆的巢狀會浪費記憶體。而且更重要的一點是,之前計算的結果無法有效儲存,下一次碰到同乙個問題時還需要再計算一次。例如遞迴求解 fibonacci 數列,假設求第 n 位 從 1 開始 的值,c 如下 include intfib int n return fib n 1 fib n...
資料結構與演算法 156 159 動態規劃
揹包問題 有乙個揹包,容量為4磅,物品重量 吉他 g 11500 音響 s 43000 電腦 l 32000 動態規劃演算法介紹 動態規劃演算法最佳實踐 揹包問題 物品重量 吉他 g 11500 音響 s 43000 電腦 l 32000 思路和 v i 0 0 j 0 當 w i j時 v i j...