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.
  • 相关阅读:
    报错信息
    交通
    安装Charles代理
    安装Phabricator
    缓存更新问题
    最好的学习资料在官网
    mysql安装
    git使用
    vbox的centos系统挂载win共享目录做web目录www用户权限问题
    一句话解决windows下quick-cocos2d-x中player3打开黑屏问题
  • 原文地址:https://www.cnblogs.com/Hello-world-hello-lazy/p/13497421.html
Copyright © 2011-2022 走看看