統計 (アレイの重複排除)

    書き始める前は、この質問は非常に水っぽいと感じていましたが、書いているときに落とし穴を発見しました。前回のコンテストでも遭遇した落とし穴です。詳しい手順は書きませんので、大まかに書きます。

    落とし穴は、出力を数えた後、何個出力されたのか、重複した要素が削除できないことですが、考えて議論した結果、ソートされているので変数を定義し、出力後に値を代入することにしました。変数に代入して、次回出力するかどうかを判断する 前回と同様でOKです。

import java.util.*;
public class Test6 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int n = input.nextInt();
		int[] a = new int[n];
		int[] b = new int[n+1];
		
		for(int i=0;i<n;i++) {
			a[i]=input.nextInt();
			b[i]=a[i];
		}
		sort(a,n);
		
		int p=0;
		for(int i=0;i<n;i++) {
			int sum=0;
			for(int j=0;j<n;j++) {
				if(a[i]==a[j])
					sum++;
			}
			
			if(p!=0&&p==a[i])
				continue;
			else
				System.out.println(a[i]+" "+sum);
			p=a[i];
		}
		input.close();
	}
	//排序
	public static void sort(int []a,int n) {
		for(int i=0;i<n;i++) {
			for(int j=i;j<n;j++) {
				int change=0;
				if(a[i]>a[j]) {
					change=a[i];
					a[i]=a[j];
					a[j]=change;
				}
			}
		}
	}
}

おすすめ

転載: blog.csdn.net/qq_38786110/article/details/80227949