Angesichts der Array muss ich finden, wie viele monoton steigende Sub-Arrays gibt es in diesem Array?Finden Sie Zahlen von monoton steigenden Sub-Array
Zum Beispiel mit [0, 1, 3, 1, 2] - hat 2 monotone Sub-Arrays: [0, 1,3] und [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());
}
}
Der Ausgang ist: 0 (statt 1).
Also, wo liege ich falsch?
Warum verwenden Sie einen HashSet (und warum geben ihm den Namen "Liste"?)? Warum die ArrayList? Warum nicht einfach eine einfache Zählervariable verwenden? Und warum nach 108 Posts hier ist dein Code alle linksbündig formatiert? –
Vote um zu schließen: Fremde zu fragen Fehler in Ihrem Code durch Inspektion zu erkennen ist nicht produktiv. Sie sollten das Problem identifizieren (oder zumindest isolieren), indem Sie einen Debugger oder Druckanweisungen verwenden, und dann mit einer spezifischeren Frage zurückkommen. –
@ Hovercraft voll von Aalen: HashSet - Ursache doppelte Zahl ist nicht erlaubt, nur der falsche Name .. ArrayList, um Zahlen von HashSet zu zählen. Sorry über das Format .. –