-2
給定數組,我需要找出在該數組中有多少個單調遞增的子數組?例如,[0,1,3,1,2]具有2個單調子數組:[0,1,3]和[1,2]。查找單調遞增的子數組的數量
public class SUB_ARRAY {
public static void main(String a[]){
int[] x = new int[6];
x[0]=1;
x[1]=2;
x[2]=3;
x[3]=6;
x[4]=9;
x[5]=10;
ArrayList<Object> arraylist = new ArrayList<Object>();
HashSet list = new HashSet();
for (int i=0; i< (x.length -1); i++){
if (x[i+1]> x[i]){
list.add(x[i]);
list.add(x[i+1]);
} else if (x[i+1] < x[i] || x[i+1]==x[i]) {
arraylist.add(list.clone());
list.clear();
}
}
System.out.println(arraylist.size());
}
}
輸出爲:0(而不是1)。
那麼,我錯了?
你爲什麼要使用一個HashSet(爲什麼給它取名爲 「清單」?)?爲什麼ArrayList?爲什麼不使用簡單的計數器變量?爲什麼在這裏有108個帖子是你的代碼格式化的所有左對齊? – 2012-03-31 13:46:16
投票結束:要求陌生人通過檢查發現代碼中的錯誤並不是富有成效的。您應該通過使用調試器或打印語句來識別(或至少隔離)問題,然後返回一個更具體的問題。 – 2012-03-31 13:47:59
@ Hovercraft Full Of Eels:HashSet - 導致重複的整數不被允許,只是錯誤的名字。ArrayList來計算HashSet的數量。對不起格式.. – 2012-03-31 13:52:20