【题目】
给一个 10 个整数的序列,要求对其重新排序。排序要求:
1.奇数在前,偶数在后;
2.奇数按从大到小排序;
3.偶数按从小到大排序。
输入格式
输入一行,包含 10 个整数,彼此以一个空格分开,每个整数的范围是大于等于 0,小于等于 100。
输出格式
按照要求排序后输出一行,包含排序后的 10 个整数,数与数之间以一个空格分开。
Sample Input
4 7 3 13 11 12 0 47 34 98
Sample Output
47 13 11 7 3 0 4 12 34 98
【思路】
先分奇偶,然后分别排序,注意可变数组的写法,和默认的排序顺序。
【代码】
public static int[] coupons(int[] g) { ArrayList<Integer> odd = new ArrayList<>(); ArrayList<Integer> eve = new ArrayList<>(); for (int i : g) { if (i % 2 == 1) { odd.add(i); } else { eve.add(i); } } Collections.sort(eve); Collections.sort(odd, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { if(o1>o2){ return -1; }else if(o1<o2){ return 1; } return 0; } }); int i=0; for(int x:odd){ g[i++] = x; } for(int x:eve){ g[i++] = x; } return g; }
标签:奇偶,int,ArrayList,整数,排序,odd From: https://www.cnblogs.com/End1ess/p/17599830.html