今天做了乙個程式,是實現結對程式設計的小專案,專案是尋找一組陣列中最大的一組子陣列(條件是陣列必須連續)。通過我們模擬一組資料:
例如:int a=
首先是選定乙個初始值假如是a[0],則第二個數是a[0]+a[1]........可以這樣理解:
即第一層從a[0]開始 設定乙個初始最大值:max
sum1=a[0]; // max=sum1
sum2=a[0]+a[1]; //sum2=sum1+a[1]; if(sum2>max) max=sum2;
sum3=a[0]+a[1]+a[2].... //sum3=sum2+a[2]; if(sum3>max) max=sum3;
第二層從a[1]開始
sum4=a[1]; //if(sum4>max) max=sum4;
sum5=a[1]+a[2]; //sum5=sum4+a[2]; if(sum5>max) max=sum5
sum6=a[1]+a[2]+a[3]....... //sum6=sum5+a[3]; if(sum6>max) max=sum6
....................
然後通過每一層進行比較,得出一層的max,與下層繼續比較,直到找到最大相鄰的子陣列的和。
演算法模擬:
假設陣列為a;
package com.su.test;public
class
second ; //
測試用例
int length=a.length;
int cur=a[0
];
int max=a[0
];
for(int i=0;i)
system.
out.println(max);
}}
這種演算法很好充分利用了動態規劃解決問題。而且演算法的時間複雜度為o(n).
將乙個陣列追加到別乙個陣列
問題 將乙個陣列追加到別乙個陣列 方案 1 使用array merge 在使用這個合併陣列時如果使用數字鍵,那麼索引會重新編號.如果使用字串鍵,則會導致第二個陣列中的鍵 覆蓋第乙個陣列中的同名鍵 此時第乙個陣列中的值也就消失了 如果是兩種鍵則會表現出上述兩種特徵.r array 1 2 dd 3 4...
乙個集合對映成乙個陣列
把集合對映成陣列的簡單的例子如下圖 對映方法一 點集來表示每個格 row,column 1,1 1,2 2,1 2,2 3,1 3,2 對映方法二 數字來表示每個格,pos num 12 3456 789 而通過觀察這兩種的對映方法是有關聯的,關係式如下 pos num row 1 3 column...
php 清空乙個陣列 php如何刪除乙個陣列
php如何刪除乙個陣列2020 07 10 01 16 35 php刪除乙個陣列的方法 1 使用unset函式刪除乙個陣列元素,且保持原有索引不變 2 使用 array splice 函式刪除乙個陣列元素,不保持索引 3 使用 array diff 函式,按值刪除多個元素,保持索引。php刪除陣列 ...