packageday;
/*** 累加和位指定值的最長子陣列
* 這是乙個可伸縮的滑動視窗,不斷地在k值的上下波動,
* 並且要不斷的判斷right是否越界,由於都是整數,所以left不會比right先到arr.length位置上。
* @author
administrator *
*/public
class
demo2
int left = 0;
int right= 0;
int sum = arr[0];
int len = 0;
while(right <=arr.length)
else
if(sum sum =sum +arr[right];
}else
}return
len;
}}
累加和為aim的最長子陣列
參考 擴充套件1乙個陣列中要麼是奇數,要麼是偶數,求奇數和偶數相等的最長子陣列。思路用1表示奇數,用 1表示偶數,那麼就是求累加和為0的最長子陣列,參考上面 擴充套件2求乙個陣列怎樣劃分可以使得子陣列異或為0的個數最多。思路動態規劃 定義乙個dp陣列,dp i 表示以 i 結尾可以劃分的最多個數 對...
未排序正整數組中累加和為指定值的最長子陣列長度
題目 給定乙個陣列arr,該陣列無序,但每個值都為正數,在給定乙個正數k。求arr中所有的子陣列中所有元素累加為k的最長子陣列長度。例如,arr 1,2,1,1,1 k 3.累加和為3的最長子陣列為 1,1,1 所以返回結果為3。基本思路 使用兩個指標left和right,代表子陣列的範圍,初始時都...
演算法 求陣列中累加和為定值的最長子陣列
o n n 的演算法,我想大家都應該很瞭如指掌,那我們就講一種o n 的演算法,借助map巧妙地解決。主要在思想上,其實很簡潔 後面有類似思想拓展題。演算法思想 我們準備乙個map來完成記錄操作。map的意義是從開始累加到i位置的和為sum的時候,此時陣列的下標i。且sum必須是新出現的。初始的時候...