• BUPT复试专题—找K小数(2011)


    https://www.nowcoder.com/practice/204dfa6fcbc8478f993d23f693189ffd?tpId=67&tqId=29637&rp=0&ru=/kaoyan/retest/1005&qru=/ta/bupt-kaoyan/question-ranking

    题目描述

    查找一个数组的第K小的数,注意同样大小算一样大。 如  2 1 3 4 5 2 第三小数为3。

    输入描述:

    输入有多组数据。
    每组输入n,然后输入n个整数(1<=n<=1000),再输入k。

    输出描述:

    输出第k小的整数。
    示例1

    输入

    6
    2 1 3 5 2 2
    3


    统计题目
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    int donser(const void *a,const void *b)
    {
        return *(int *)b-*(int *)a;//反->大到小
    }
    int main()
    {
        int num,k;
        while(scanf("%d",&num)!=EOF)
        {
            int data[1001],i=0;
            while(i<num)
                scanf("%d",&data[i++]);
            scanf("%d",&k);
            qsort(data,num,sizeof(int),donser);
            while(1)
            {
                int temp=data[--num];
                while(temp==data[--num]);
                num++;
                if(k==1)
                {
                    cout<<data[num]<<endl;
                    break;
                }
                k--;
            }
        }
        return 0;
    }

    输出

    3
  • 相关阅读:
    leetcode — simplify-path
    leetcode — climbing-stairs
    leetcode — sqrtx
    leetcode — text-justification
    leetcode — add-binary
    leetcode — plus-one
    leetcode — valid-number
    leetcode — minimum-path-sum
    leetcode — unique-paths-ii
    四维偏序 CDQ套CDQ
  • 原文地址:https://www.cnblogs.com/dzzy/p/8260658.html
Copyright © 2020-2023  润新知