package JD;
import java.util.Scanner;

/**
 * @Author: JackYe
 * @CreateDate: 2019/8/24 20:22
 * @Description: java类作用描述
 * @UpdateUser: 更新者
 * @UpdateDate: 2019/8/24 20:22
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 */
public class HTest02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int M = scanner.nextInt();
        int[][] relation = new int[N][N];
        int[] all = new int[2*N];
        for (int i = 0; i < M; i++) {
            int male = scanner.nextInt();
            int female = scanner.nextInt();
            relation[male - 1][female - N - 1] = 1;
            all[male-1]+=1;
            all[female-1]+=1;
        }
        while (true){
            int index= findMax(all);
            if (all[index]==0) break;
            all[index]=0;/*移除所有关系*/
            System.out.println(index+1);
            if(index<N){/*male*/
                for (int i=0;i<N;i++){
                    if (relation[index][i]==1){
                        all[N+i]--;
                    }
                }
            }
            else {
                for (int i=0;i<N;i++){
                    if (relation[i][index-N]==1){
                        all[i]--;
                    }
                }
            }

        }

    }

    private static int findMax(int[] all){
        int index=0;
        for (int i=1;i<all.length;i++){
           if (all[i]>all[index]){
               index=i;
           }
        }
        return index;
    }
    
}

本地测试了下还可以。