zoukankan      html  css  js  c++  java
  • 题解——第k个小的整数

    #include <iostream>

    #include <cstdio>

    #include <algorithm>

    using namespace std;

    int a[100];

    int main()

    {

        int n,k;

        cin>>n>>k;

        for(int j=0;j<n;j++)

            cin>>a[j];

        sort(a,a+n);    //左闭右开,一般:(首地址,首地址+元素个数)即可

        int sum=0,i=0;     //引入sum用来去重

        for(i=0;i<n-1;i++)  //i=n-1时,跳出循环

        {

            if(sum==k){

                cout<<a[i-1];

                return 1;

            }

            if(a[i]!=a[i+1])

                sum++;

            if(a[i]==a[i+1])

                ;

        }                   //此时i=n-1;

        if(sum==k){         //因为在i=n-1时跳出,所以倒数第二个还没判断,这里补充判断

            cout<<a[n-2];

            return 1;

        }

        if(a[n-2]!=a[n-1])  //对最后一个元素进行讨论

        {

            sum++;

            if(sum==k){

                cout<<a[n-1];

                return 1;

            }

        }

        cout<<"No";   //前面都没有return,说明数组中没有符合条件的数

        return 0;

    }

    这篇文章,是又一个故事的结束...
    lazy's story is continuing.
  • 相关阅读:
    解决docker 容器删除不掉的问题
    centos下安装docker
    Microsoft SQL Server 双机热备份,实时同步
    同一台主机下的两台虚拟机互ping不通
    JAVA基本数据类型
    记录一些比较高能的网站!
    Nginx+Lua+Redis配置
    用Squid3搭建缓存代理服务器
    Mysql导入CSV文件
    LeetCode--Remove Duplicates from Sorted Array
  • 原文地址:https://www.cnblogs.com/Hello-world-hello-lazy/p/13497421.html
Copyright © 2011-2022 走看看