給定乙個陣列,可以從陣列中取出下標不連續的任意個數,求可以取出的數的和的最大值,例如:給出陣列a=可以取出的最大和為2+5+4=11。現再給定陣列,能取出的數的和的最大值是24。
假設原陣列為arr,輔助陣列為data. 則data[0] = arr[0], data[i] = max.
i>=2時, data[i] = max
data[i]表示以子陣列arr[0..i]符合條件的最大值。
publicstatic
int getmaxvalue(int
arr)
return data[data.length - 1];
}
publicstatic
int getmaxvalue2(int
arr)
else
}return
math.max(sum1,sum2);
}
(演算法)陣列中連續子陣列的最大和
方法一 可以從頭到尾遍歷,遍歷過程中,對以每個元素開頭的子陣列求連續最大和,最後從各個最大和中找出最大的。方法二 使用動態規劃的方法,先以第乙個數為區域性最大和整體最大值,之後遍歷陣列,累加到區域性最大值上,若新加上的數比區域性最大值還要大,則把這個新數作為區域性最大值,直到遍歷結束 遍歷過程中,若...
刪除陣列中多個不連續的陣列元素的正確姿勢
var arr a a b c d a a e g a f arr.foreach function key,index a b c d a e g f 只要相鄰的 a 元素,都沒被刪除,splice不但可以刪除原素本身,還同時可以減少陣列長度 就是抹去一切痕跡 這樣導致後續的陣列元素會代替已經刪除...
演算法 陣列中未出現的最小正整數
給定乙個無序整型陣列arr,找到陣列中未出現的最小正整數。例如 arr 1,2,3,4 返回1。arr 1,2,3,4 返回5。要求時間複雜度為o n 空間複雜度為o 1 在遍歷arr之前先生成兩個變數。變數l表示遍歷到目前為止,陣列arr已經包含的正整數範圍是 1,l 所以在沒有開始之前l 0,表...