第二小整数

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8299    Accepted Submission(s): 5227
Problem Description
求n个整数中倒数第二小的数。
每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1。
 
Input
输入包含多组测试数据。
输入的第一行是一个整数C,表示有C测试数据;
每组测试数据的第一行是一个整数n,表示本组测试数据有n个整数(2<=n<=10),接着一行是 n个整数 (每个数均小于100);
 
Output
请为每组测试数据输出第二小的整数,每组输出占一行。
 
Sample Input
2
2
1 2
3
1 1 3
 
Sample Output
2
1
 
Author
yifenfei
 
Source
 
 
        这是一个求第k大的类似问题,转化一下就是第k小。
        不过这个题目数据很小,就是拿来卖萌的,排个序就好了。
 #include <stdio.h>
#include <algorithm>
int main()
{
int C, n, arr[];
scanf("%d", &C);
while(C--) {
scanf("%d", &n);
for(int i=; i<n; i++)
scanf("%d", arr+i);
std::sort(arr, arr+n);
printf("%d\n", arr[]);
}
return ;
}

        不过下午上机实在无聊,于是手痒写了快排思想的第k小。
        有学过快排的都很容易理解了,partition把数组分成两份,如果k(也就是2)在左边区间就对左边区间求第k小,或者在右边区间求。注意下标从0开始的话,k要减一下。
 #include <stdio.h>
#include <algorithm> int partition(int *arr, int p, int q) {
int pivot=arr[p];
int i=p, j=q;
while(i<j) {
while(arr[j]>=pivot&&i<j)
--j;
arr[i]=arr[j];
while(arr[i]<=pivot&&i<j)
++i;
arr[j]=arr[i];
}
arr[i]=pivot;
return i;
} int KthMin(int *arr, int p, int q, int k) {
int m=partition(arr, p, q);
if(m<k-)
return KthMin(arr, m+, q, k);
else if(m>k-)
return KthMin(arr, p, m-, k);
else
return arr[m];
} int main()
{
int C, n, arr[];
scanf("%d", &C);
while(C--) {
scanf("%d", &n);
for(int i=; i<n; i++)
scanf("%d", arr+i);
printf("%d\n", KthMin(arr, , n-, ));
}
return ;
}

HDOJ 2561. 第二小整数 第k大问题的更多相关文章

  1. HDU 2561 第二小整数(排序,水)

    第二小整数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  2. HDOJ/HDU 2561 第二小整数(水题~排序~)

    Problem Description 求n个整数中倒数第二小的数. 每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1. Input 输入包含多组测试数据. 输入的第 ...

  3. HDU.2561 第二小整数(water)

    题目来源:2561 题意分析:找出一堆数中第二小的整数,和题目说的一样 我的思路:冒泡或者sort()一下就ok了,但是我因为没看到多个测试用例还是吃了几记WA . ┭┮﹏┭┮ 完整代码: #incl ...

  4. HDU 2561 第二小整数 (排序)

    题意:中文题. 析:输入后,排一下序就好. 代码如下: #include <iostream> #include <cstdio> #include <algorithm ...

  5. HDU-2561 第二小整数

    http://acm.hdu.edu.cn/showproblem.php?pid=2561 第二小整数 Time Limit: 3000/1000 MS (Java/Others)    Memor ...

  6. 【ACM】hdu_zs1_1004_第二小整数_201307271529

    第二小整数 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)Total Submissi ...

  7. 洛谷P1138 第k小整数

    我偏不用sort Treap好题啊 看到只有一个人写Treap,而且写的不清楚,那我就来详细地写一下,方便新人学习 第(-1)部分:前置知识 二叉查找树:满足左子树的数据都比根节点小,右子树的数据都比 ...

  8. ACM学习之路————一个大整数与一个小整数不得不说得的秘密

    这个相对于两个大整数的运算来说,只能说是,low爆了. 只要利用好除法的性质,这类题便迎刃而解.O(∩_∩)O哈哈~ //大整数除一个int数 #include<iostream> #in ...

  9. C语言 · 第二大整数

    算法提高 第二大整数   时间限制:1.0s   内存限制:512.0MB      问题描述 编写一个程序,读入一组整数(不超过20个),当用户输入0时,表示输入结束.然后程序将从这组整数中,把第二 ...

随机推荐

  1. Python标准模块--threading

    1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...

  2. VS2013:Unit Test 单元测试入门

    一.打开VS ,找到工具栏的“工具->扩展和更新”,添加图片内容 二.新建控制台应用程序: CalculatorDemo 三.新建类:Operation.cs,并添加方法 namespace C ...

  3. 深入netty源码解析之一数据结构

    Netty是一个异步事件驱动的网络应用框架,它适用于高性能协议的服务端和客户端的快速开发和维护.其架构如下所示: 其核心分为三部分, 最低层为支持零拷贝功能的自定义Byte buffer: 中间层为通 ...

  4. CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  5. 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)

    Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  6. TeamCity : 配置 Build 过程

    Build 过程往往是比较复杂的,因此 TeamCtiy 通过 build 步骤的方式让您可以实现不同的应用场景.您可以在每个 build 步骤中只做一件事情,然后把一系列的 build 步骤组织起来 ...

  7. C#——this关键字(1)

    //我的C#是跟着猛哥(刘铁猛)(算是我的正式老师)<C#语言入门详解>学习的,微信上猛哥也给我讲解了一些不懂得地方,对于我来说简直是一笔巨额财富,难得良师! 在学习C#的时候,老师讲的示 ...

  8. EasyUI datagrid 日期时间格式化

    EasyUI datagrid中显示日期时间时,会显示为以下不太直观的数值: 添加以下JavaScript脚本,然后在field中添加 formatter: DateTimeFormatter 即可. ...

  9. 【笔记】LAMP 环境无脑安装配置 Centos 6.3

    p.p1 { margin: 0.0px 0.0px 5.0px 0.0px; font: 12.0px Times; color: #ff2500 } p.p2 { margin: 0.0px 0. ...

  10. TiQuery

    TiQuery 是一个基于JQuery 的在Titanium上使用的 javascript 库 TiQuery 为TI 提供了很快捷的方法: // Utilities $.info('My messa ...