对一组数据,按从小到大的顺序输出这组数据中的不相等的数,并输出不相等的数据有多少个
2016-10-10 11:34
573 查看
输入
输入有2行,第1行为1个正整数,表示所生成的随机数的个数:
N
第2行有N个用空格隔开的正整数,为所产生的随机数。
输出
输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例输入
样例输出
要求从小到大进行输出,我们容易想到使用数组,因为数组中一个排序的方法,但是我们是想排序呢??还是先比较数据,得到不相等的记录后进行排序呢??一般我们会想使用先求不相等的数,,,但是我们先排序的话,那么久更加容易比较数据是否有相等的,只需临近的数据进行比较即可,因此我们先进性排序,排序好后,让临近的数据比较,如果相等就让这个相等的数为0,最后遍历数组时,输出不为0的数据即可,这样输出的数据仍然是按照从小到大的顺序进行排序的,具体代码如下:
输入有2行,第1行为1个正整数,表示所生成的随机数的个数:
N
第2行有N个用空格隔开的正整数,为所产生的随机数。
输出
输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例输入
10 20 40 32 67 40 20 89 300 400 15
样例输出
8 15 20 32 40 67 89 300 400
要求从小到大进行输出,我们容易想到使用数组,因为数组中一个排序的方法,但是我们是想排序呢??还是先比较数据,得到不相等的记录后进行排序呢??一般我们会想使用先求不相等的数,,,但是我们先排序的话,那么久更加容易比较数据是否有相等的,只需临近的数据进行比较即可,因此我们先进性排序,排序好后,让临近的数据比较,如果相等就让这个相等的数为0,最后遍历数组时,输出不为0的数据即可,这样输出的数据仍然是按照从小到大的顺序进行排序的,具体代码如下:
<span style="font-size:14px;">import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int arr[] = new int ; for (int i = 0; i < arr.length; i++) { arr[i] = sc.nextInt(); } Arrays.sort(arr); int k=0; for (int i = 0; i < arr.length-1; i++) { if (arr[i] == arr[i+1]) { k++; arr[i] = 0; } } System.out.println(arr.length-k); for (int i = 0; i < arr.length; i++) { if (arr[i]!=0) { System.out.print(arr[i]+" "); } } } } </span>
相关文章推荐
- ACM 4描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。输入 第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,
- 输入一组整数,按从小到大顺序的输出
- 用冒泡排序去对输入的10个数按从小到大的顺序输出
- 要求按从小到大顺序输出这4个数。(C语言试题) 输入4个整数
- 第九周实验报告(四)建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作
- 输入三个数,以从小到大的顺序输出。
- 输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
- 从键盘输入20个整数将奇数&偶数分别存在不同的数组中并按先奇数后偶数的顺序输出这两个数组中的数据
- 这是一个求两数之和的题目,输入多对用空格分开的两个数a b,输出a+b的和,每一对数据的和占一行。编写代码时需要注意的是,由于没有指出有多少对输入数据,因此我们可以编写如下代码:
- 第九周实验报告任务4 建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。
- c++第九周【任务4】建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。
- 编写程序,要求用户输入一组数,输出信息说明其中有多少负数?
- 从终端输入一组数据进行进栈、出栈操作并将其结果打印出来(采用顺序栈的方式)
- 用程序给出随便大小的10个数,序号为1-10,按从小到大顺序输出,并输出相应的序号
- 输入一组数,输出其中有多少个负数。
- 第九周任务四(建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。)
- 这个C++程序 输入一组数据 为何会输出很多个结果啊~ 是有关文件处理的
- 任意输出4个整型数,按其从小到大的顺序输出
- 有一组数据3,5,9,7,4,13,15,0,2,20.已知最大数是20,把数据从小到大排序,而且算法复杂度只能是1
- Problem Description 有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。 Input 输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数