枚举每个长度为k的区间, 然后用平衡树找中位数进行判断, 时间复杂度O(nlogn).早上起来精神状态不太好...连平衡树都不太会写了...果断去看了会儿番然后就A了哈哈哈----------------------------------------------------------------...
分类:
其他好文 时间:
2015-07-23 13:30:08
阅读次数:
119
这种题做法应该很多吧...说说我的做法设b出现位置为pos, 从pos开始向右扫一遍顺便维护( x )(> b 的数的个数 - b 的数的个数 - #include#include#include #define rep(i, n) for(int i = 0; i > n >> b; rep(i....
分类:
其他好文 时间:
2015-07-21 21:57:28
阅读次数:
118
题目描述:
给定一个未排序的整数数组,找到其中位数。
中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。
样例
给出数组[4, 5, 1, 2, 3], 返回 3
给出数组[7, 9, 4, 5],返回 5
解题思路:
利用快排划分的思想,递归处理。
参考代码:
public class Solution {
p...
分类:
编程语言 时间:
2015-07-21 10:37:05
阅读次数:
144
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。思路:1、方法1:先排序,然后找中位数;时间复杂度O(nlogn)2、方法2:基于Partition函数...
分类:
编程语言 时间:
2015-07-20 21:11:12
阅读次数:
159
还没有写完APIO2015的题目,打算今天写一写。T3:k=1时排序求中位数。k=2时设垮桥的所有两点坐标分别为x1i,x2i。设桥修在了p1,p2的位置,对于每对点(x1,x2),当(x1+x2)/2接近p1时肯定走p1,(x1+x2)/2接近p2时肯定走p2。故将所有点对按x1+x2升序排序,这...
题目链接:http://poj.org/problem?id=3784题目大意:依次输入n个数,每当输入奇数个数的时候,求出当前序列的中位数(排好序的中位数)。 此题可用各种方法求解。 排序二叉树方法,每个结点保存以其为根的左右子树中数的个数。如果数据出的够严格,这种方法会被卡的,除非是通过动态.....
分类:
其他好文 时间:
2015-07-17 11:58:06
阅读次数:
130
2015-07-16问题简述: 动态求取中位数的问题,输入一串数字,每输入第奇数个数时求取这些数的中位数。 原题链接:http://poj.org/problem?id=3784解题思路: 求取中位数的方法常常想到使用堆来实现:取一个大顶堆,一个小顶堆,使大顶堆的堆顶记录中位数,因此,要时刻保...
分类:
其他好文 时间:
2015-07-16 11:21:56
阅读次数:
101
【二分查找,第k大,分治】两个有序的list,长度分别为m和n。用O(log(m+n))时间复杂度,在不合并为一个序列的情况下,找到中位数。
分类:
其他好文 时间:
2015-07-14 17:30:22
阅读次数:
94
import java.math.BigDecimal;public class Test { public static void main(String[] args) { //控制随机数量 int c = 100; Number[] ar...
分类:
编程语言 时间:
2015-07-14 17:17:58
阅读次数:
390
堆真是一种简单而又神奇的数据结构,以前用它求过前kth的数,现在又可以用两个堆来动态求解中位数。算法: 构建一个大顶堆和一个小顶堆,分别记为g和l。 假设当前中位数为mid,新读入一个数为tmp,则: 1.如果tmp = mid,则将tmp插入小顶堆,跳到步骤4。 3.如果大顶堆的元素个数比...
分类:
其他好文 时间:
2015-07-14 15:00:42
阅读次数:
93