ACdream 1099 瑶瑶的第K大

ACdream 1099 瑶瑶的第K大

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

瑶瑶的第K大

Time Limit: 10000/5000MS (Java/Others)Memory Limit: 512000/256000KB (Java/Others)

SubmitStatisticNext Problem
Problem Description

一天,萌萌的妹子–瑶瑶(tsyao)非常无聊,就来找你玩。但是你们都不知道玩什么。。。尴尬了一阵子,机智的瑶瑶就提议:“这样吧,你说N个整数xi,然后在任意说一个数字k,我可以高速地说出这些数字里面第 k 大的数字。”

Input


第1行 两个整数N, K以空格隔开;

第2行 有N个整数(可出现相同数字,均为随机生成),相同以空格隔开。

0 < n ≤ 5*10^6 , 0 < k ≤ n

1 ≤ xi ≤ 10^8


Output


输出第 k 大的数字。
Sample Input

5 2
5 4 1 3 1
Sample Output

4
Hint

如2,2,1中三个数字中第一大数字为2,第二大数字也为2,第三大数字为1 。


闲来无聊,静静心,刷刷水题,突然想起快排的实现过程还不懂,于是就找到了这个题,专研了快排,也算懂个所以然了!

只是这个题做得纠结啊,卡超时卡得太紧了,还得优化输入,无奈啊!!


AC代码例如以下:

#include<iostream>
#include<cstring>
#include<cstdio>
#define M 6000010
using namespace std;

int num[M];

int input()
{
    int ans=0;
    char a;
    while((a=getchar())<'0'||a>'9');
    ans=a-'0';
    while((a=getchar())>='0'&&a<='9')
    {
        ans=ans*10+a-'0';
    }
    return ans;
}

int qsort(int l,int r,int k)
{
    if(l==r)
        return num[l];
    int i,j,a;
    a=num[l];i=l;j=r;
    while(i<j)
    {
        while(i<j&&num[j]<=a)
            j--;
        if(i<j)
            num[i++]=num[j];
        while(i<j&&num[i]>=a)
            i++;
        if(i<j)
            num[j--]=num[i];
    }
    num[i]=a;
    if(i==k) return num[i];
    else if(i>k) return qsort(l,i-1,k);
        else return qsort(i+1,r,k);
}


int main()
{
    int i,j;
    int n,k;
    n=input();k=input();
    for(i=1;i<=n;i++)
        num[i]=input();
    int ans=qsort(1,n,k);
    printf("%d\n",ans);
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118702.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2021前端面试经常被问到的题(附答案)

    2021前端面试经常被问到的题(附答案)一、html二、css1.50道CSS基础面试题(附答案)50道CSS基础面试题(附答案)2.如何居中div?CSS水平居中+垂直居中+水平/垂直居中的方法总结3.CSS3新特性深入了解CSS3新特性4.清除浮动清除浮动的四种方式及其原理理解5.media媒体查询深入浅出篇—media媒体查询-响应式开发必备6.讲一讲Flex布局,以及常用的属性?一…

    2022年8月29日
    2
  • flutter下载图片到本地_禁止拍照上传图片

    flutter下载图片到本地_禁止拍照上传图片/Ios、Android应用权限开启流程/IOS应用(询问权限、开启权限)Android应用(询问权限、开启权限)/自定义选择相机和相册的对话框/创建一个存放对话框标题、相册拍照选项、关闭对话框的集合[{‘label’:’${titLab??’上传有效凭证’}’},{‘label’:’拍照’},{‘label’:’从手机相册选择’},{‘label’:’取消’},…

    2022年9月23日
    2
  • python中的pop函数和append函数

    python中的pop函数和append函数pop()函数1、描述pop()函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。语法pop()方法语法:list.pop(obj=list[-1])2、参数obj–可选参数,要移除列表元素的对象。3、返回值该方法返回从列表中移除的元素对象。4、实例以下实例展示了pop()函数的使用方法:#!/usr/bin/pythonaList=[123,’xyz’,’z

    2022年6月29日
    26
  • 内存映射文件原理_开源内存数据库

    内存映射文件原理_开源内存数据库前言在前文LMDB简介的基础上,本文介绍LMDB数据库的基本用法,包括环境environment创建、数据存储put、数据读取get等;源码ULONGcvtest_Test4_Lmdb(){INTiRet;MDB_txn*pstTxn=NULL;MDB_dbistDbi;UINTuiKey=1;…

    2022年9月29日
    5
  • sshd_config 中 PermitRootLogin 的探讨

    sshd_config 中 PermitRootLogin 的探讨众所周知,sshd_config是sshd的配置文件,其中PermitRootLogin可以限定root用户通过ssh的登录方式,如禁止登陆、禁止密码登录、仅允许密钥登陆和开放登陆,本文对其中比较罕见的forced-commands-only选项做了介绍及实战。

    2022年6月12日
    24
  • 数据库原理——主从复制

    数据库原理——主从复制

    2021年5月20日
    95

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号