9度oj 题目1004:Median【排序水题】

简介: 题目1004:Median 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:12541 解决:3434 题目描述:     Given an increasing sequence S of N integers, the median is the number at the middle position.
题目1004:Median

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:12541

解决:3434

题目描述:

    Given an increasing sequence S of N integers, the median is the number at the middle position. For example, the median of S1={11, 12, 13, 14} is 12, and the median of S2={9, 10, 15, 16, 17} is 15. The median of two sequences is defined to be the median of the non-decreasing sequence which contains all the elements of both sequences. For example, the median of S1 and S2 is 13.
    Given two increasing sequences of integers, you are asked to find their median.

输入:

    Each input file may contain more than one test case.
    Each case occupies 2 lines, each gives the information of a sequence. For each sequence, the first positive integer N (≤1000000) is the size of that sequence. Then N integers follow, separated by a space.
    It is guaranteed that all the integers are in the range of long int.

输出:

    For each test case you should output the median of the two given sequences in a line.

样例输入:
4 11 12 13 14
5 9 10 15 16 17
样例输出:
13
来源:
2011年浙江大学计算机及软件工程研究生机试真题
题意:给出2个数组,合并后求中位数,如果是偶数个,输出中间2个中的第一个。
import java.util.Arrays;
import java.util.Scanner;
public class Main 
{
	public static void main(String[] args) 
	{
		Scanner cin = new Scanner(System.in);
		while(cin.hasNext())
		{
			int n,m,i;
			long[] a = new long[2000100];
			n = cin.nextInt();
			for (i = 0; i < n; i++)
			{
				a[i] = cin.nextLong();
			}
			m = cin.nextInt();
			n+=m;
			for (; i < n; i++)
			{
				a[i] = cin.nextLong();
			}
			Arrays.sort(a,0,n);
			System.out.println(a[(n-1)/2]);
		}
		cin.close();
	}
}
目录
相关文章
|
缓存 算法 Java
【手绘算法】力扣 1 两数之和(Two Sum)
Hi,大家好,我是Tom。一个美术生转到Java开发的程序员。从今天开始,我将带大家每天刷一道题。我会用手绘的方式给大家讲解解题思路。在解题过程中,也会手写一些伪代码。当然,如果想要完整的源码的话,可以到我的个人主页简介中获取。 今天给大家分享的是力扣启蒙题第1题,求两数之和。虽然很简单,但是它的通过率只有52%。
85 0
|
3月前
|
C++
【洛谷 P2249】【深基13.例1】查找(向量+二分查找+递归)
该题目要求在一个单调不减的整数序列中查找特定数值首次出现的位置,输入包含序列长度、查询次数及数值,输出对应位置或-1。给定样例输入为11个数和3次查询,输出分别为1、2和-1。代码使用C++,通过二分查找优化效率,适应大数据量。
31 0
|
3月前
【洛谷 P2249】【深基13.例1】查找(向量+二分查找+循环)
该题目要求在一个单调不减的整数序列中查找给定数值首次出现的位置,输出-1表示未找到。给定$n$个整数和$m$次询问,需对每个询问使用二分查找法高效解答。样例输入为11个数和3次询问,输出分别为1、2和-1。代码中定义了快速读取整数的函数`read()`,并使用二分查找`search()`实现。在主函数中,先读取序列和询问,然后对每个询问进行二分查找并输出结果。
26 0
|
3月前
【洛谷 P1873】[COCI 2011_2012 #5] EKO _ 砍树 题解(向量+二分查找)
【COCI 2011/2012 #5】EKO 砍树问题摘要: - 伐木工Mirko需砍$M$米木材,只能砍一排树,使用二分搜索策略确定锯片最大高度$H$。 - 锯片设为$H$米时,会砍掉所有高于$H$的树顶,求得所需木材至少$M$米的最高$H$。 - 输入:树的数量$N$和所需木材总长$M$,每棵树的高度。 - 输出:锯片的最大高度。
23 0
51nod 1711 平均数(二分 + 树状数组好题)
51nod 1711 平均数(二分 + 树状数组好题)
89 0
|
机器学习/深度学习 Java
【每日一题Day64】LC1799N 次操作后的最大分数和 | 状态压缩dp 状态压缩+dfs+记忆化搜索
每个数字有两种状态,删除或者未删除,因此可以使用状态压缩记录未删除的数字情况state,便于使用位运算进行状态的遍历及转移;使用状态压缩dp找到将所以数字删除的最大分数
96 0
【每日一题Day64】LC1799N 次操作后的最大分数和 | 状态压缩dp 状态压缩+dfs+记忆化搜索
代码随想录刷题|LeetCode 977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵II
代码随想录刷题|LeetCode 977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵II
|
算法
每日算法刷题Day12-跳台阶、排列、替换空格、求n累加
⭐每日算法题解系列文章旨在精选重点与易错的算法题,总结常见的算法思路与可能出现的错误,与笔者另一系列文章有所区别,并不是以知识点的形式提升算法能力,而是以实战习题的形式理解算法,使用算法。
85 0
每日算法刷题Day12-跳台阶、排列、替换空格、求n累加
LeetCode每日一题题解:1984. 学生分数的最小差值
LeetCode每日一题题解:1984. 学生分数的最小差值