好久沒寫演算法了,今天就拿這道簡單的題練一練手。
/**
* 獲取數字陣列中的最大子陣列(返回下標map)
* @param array 陣列
* @return map 下標map
*/public
static map
getmaxsubarray
(int
array)
continue;}
//對之後的資料進行處理
int high =
0, endindex = i, sum =0;
for(
int j = i+
1; j < array.length; j++)}
//合併處理, 將之後位置連續求的和加上當前位置的值判斷與max的大小
if(array[i]
+ high > max)
} system.out.
println
("maxvalue = "
+ max)
; map.
put(
"startindex"
, maxstartindex +1)
; map.
put(
"endindex"
, maxendindex +1)
;return map;
}
求陣列中連續子陣列的最大和
思路 計算出任意i到j之間連續子陣列的和再比較必然能得到最大值,但時間複雜度為o n 2 我們希望能找出線性時間的演算法。我們注意到,假如陣列中全為正數,那麼最大和必然為全部數相加 如果陣列中有負數,並且如果加上某個負數,子陣列的和小於0,則最大和子陣列必然不包含這個負數。基於此,給出以下 incl...
求陣列中連續子陣列的最大值
求解陣列中連續一段子陣列和的最大值。例如 最大值為59 26 53 58 97 187 思路 計算出任意i到j之間連續子陣列的和再比較必然能得到最大值,但時間複雜度為o n 2 我們希望能找出線性時間的演算法。我們注意到,假如陣列中全為正數,那麼最大和必然為全部數相加 如果陣列中有負數,並且如果加上...
動態規劃 求陣列最大的子陣列連續和
rt 如下 求子陣列的最大和 利用的是dp的思想,依次遍歷陣列中的每個元素,把他們相加,如果加起來小於0,則 把當前元素之和清為0,否則則和最大和比較,更新最大和,最後得到必是子陣列的最大和 例如輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因此輸出為該子陣列的...