配列を考えれば、その配列内に単調増加するサブアレイがいくつあるか調べる必要がありますか?単調に増加するサブアレイの数を見つける
たとえば[0,1,3,1,2]は[0,1,3]と[1,2]の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の投稿の後にあなたのコードはすべて左揃えにフォーマットされていますか? –
クローズしてください:見知らぬ人にあなたのコードのエラーを点検することは生産的ではありません。デバッガやprintステートメントを使用して問題を特定(または少なくとも分離)してから、さらに具体的な質問に戻ってください。 –
@ Hovercraft Eelsの完全版:HashSet - 重複した整数が許されない、ちょうど間違った名前です.HashSetの数を数えるArrayList。フォーマットについて申し訳ありません。 –