-
查找一个数组的第K小的数,注意同样大小算一样大。
如 2 1 3 4 5 2 第三小数为3。
- 输入:
-
输入有多组数据。
每组输入n,然后输入n个整数(1<=n<=1000),再输入k。
- 输出:
-
输出第k小的整数。
- 样例输入:
-
6 2 1 3 5 2 2 3
- 样例输出:
-
3
AC代码:::1234567891011121314151617181920212223242526272829303132333435#include <stdio.h>#include <algorithm>usingnamespacestd;intmain(){inti,j,k,p,n,a[1001];while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++){scanf("%d",&a[i]);}scanf("%d",&k);sort(a,a+n);j=1;for(i=1;i<n;i++){if(a[i]!=a[i-1])//当前后不等时、计数/j++;if(j==k)//计数到K时、输出!!!{printf("%d\n",a[i]);break;}}}return0;}/**************************************************************Problem: 1174User: saylstLanguage: C++Result: AcceptedTime:10 msMemory:1012 kb****************************************************************/
IT码农~!
浙公网安备 33010602011771号