配列の要素がinの出現数に従ってソートされているかどうかをチェックしたいと思います。これは、要素が同じであれば既にグループ化されていることを前提としています。 int [] y = {7, 7, 7, 8, 8, 5, 5, 5, 5}
はfalse
を返し、int [] y = {5, 5, 5, 5, 7, 7, 7, 8, 8}
はtrue
を返す必要があります。 5人は4人、7人は7人、もう2人は8人ですので、そんなに手配してください。配列内の要素が発生数に従ってソートされているかどうかをチェックする方法は?
これは私がこれまで持っているものです。
import java.io.*;
import java.util.*;
public class testing2 {
public static void main(String[] args){
int [] y = {7, 7, 7, 8, 8, 5, 5, 5, 5};
System.out.println(isSorted(y)); // should return false
}
public static boolean isSorted(int[] y){
HashMap<Integer,Integer> hash = new HashMap<Integer,Integer>();
for(int i=0; i<y.length; i++){
if(hash.containsKey(y[i])){
hash.put(y[i], hash.get(y[i]) + 1);
} else {
hash.put(y[i], 1);
}
}
System.out.println(hash);
return true; // code is not complete yet
}
}
それを印刷します:
{5=4, 7=3, 8=2}
true
をだから今、私は各要素の出現回数を持っています。私は次に何をしますか?
'isSorted'は常にtrueを返し、そして何だろう次はやりたいですか? – msagala25
* *を確認するには、基本的に 'その注文されていません'と '注文されました'と言いたいのですか?そのようなものであれば、数えている間にすべてのアイテムを繰り返すことができます。番号が変更された場合は、その番号が以前の番号よりも大きいか小さいかを確認してください。 –
@ LKTN.25まだ。私は出現を持っているので、配列y [] = {7,7,7,8,8,5,5,5,5}が降順でソートされているかどうかを調べたい。出現回数は3,2,4ではありませんが、4,3,2 –