华为OJ——输入n个整数,输出其中最小的k个
2016-08-16 10:17
351 查看
题目描述
输入n个整数,输出其中最小的k个。详细描述:
接口说明
原型:
bool GetMinK(unsignedint uiInputNum, int * pInputArray, unsignedint uiK, int * pOutputArray);
输入参数:
unsignedint uiInputNum //输入整数个数
int * pInputArray //输入整数数组
unsignedint uiK //需输出uiK个整数
输出参数(指针指向的内存区域保证有效):
int * pOutputArray //最小的uiK个整数
返回值:
false 异常失败
true 输出成功
输入描述:
输入说明 1 输入两个整数 2 输入一个整数数组
输出描述:
输出一个整数数组
输入例子:
5 2 1 3 5 7 2
输出例子:
1 2
思路:就是对输入的数字进行排序,然后取出最小的几个
第一种方法用List,第二种方法用数组,思路一模一样
方法一:
import java.util.*; public class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); while(scan.hasNext()) { int num=scan.nextInt(); int k=scan.nextInt(); ArrayList al=new ArrayList(); for(int i=0;i<num;i++){ al.add(scan.nextInt()); } Collections.sort(al); for(int i=0;i<k;i++){ if(i==k-1) System.out.println(al.get(i));//这里不能加空格,而且要是println,否则过不了 else System.out.print(al.get(i)+" "); } } } }
方法二:
import java.util.*; public class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); while(scan.hasNext()) { int num=scan.nextInt(); int k=scan.nextInt(); int[] data=new int[num]; for(int i=0;i<num;i++){ data[i]=scan.nextInt(); } Arrays.sort(data); for(int i=0;i<k;i++){ if(i==k-1) System.out.println(data[i]); else System.out.print(data[i]+" "); } } } }
相关文章推荐
- 华为oj: 输入n个整数,输出其中最小的k个
- 华为OJ——输入n个整数,输出其中最小的k个
- 华为OJ基础篇-输入n个整数,输出其中最小的k个
- 华为OJ题目(二十一):输入n个整数,输出其中最小的k个
- 华为oj 输入n个整数,输出其中最小的k个
- 华为OJ试题:输入n个整数,输出其中最小的k个
- 【华为OJ】【040-输入n个整数,输出其中最小的k个】
- 输入n个整数,输出其中最小的k个——来自华为OJ平台测试基础篇
- 华为OJ——输入n个整数,输出其中最小的k个
- 华为OJ平台试题 —— 数组:输入n个整数,输出其中最小的k个
- 华为OJ 初级:输入n个整数,输出其中最小的k个
- 【华为OJ】输入n个整数,输出其中最小的k个
- 【华为OJ】输入n个整数,输出其中最小的k个
- 华为OJ——输入n个整数,输出其中最小的k个
- 华为oj初级 输入n个整数,输出其中最小的k个
- [华为OJ--C++]040-输入n个整数,输出其中最小的k个
- [华为]输入n个整数,输出其中最小的k个
- 华为机试---输入n个整数,输出其中最小的k个
- 华为训练题:输入n个整数,输出其中最小的k个
- 华为(9)输入n个整数,输出其中最小的k个