首页 > 试题广场 >

连续段的中数

[编程题]连续段的中数
  • 热度指数:550 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
牛牛得到了一个长度为n的正整数序列,现在牛牛想要从里面取出一段连续的长度大于等于k的序列。

定义一个序列的“中数”为最大的整数x,使得序列中至少一半的数字大于等于x

牛牛想知道这个取出来的序列的中数最大可以是多少?
示例1

输入

5,3,[30,1,2,31,9]

输出

30

说明

选前四个数字组成[30,1,2,31],中数为30

备注:


第一个参数n代表序列长度
第二个参数k代表取出的连续序列长度大于等于k
第三个参数vector a包含n个元素代表这个序列
随便做做...python3
class Solution:
    def solve(self , n , k , a ):
        # write code here
        def Midnumber(liebiao):
            length=len(liebiao)
            l=sorted(liebiao)
            i=int(length/2)
            return l[i]
        changdu=n
        xulie=a
        aa=[]
        for i in range(0,changdu-k+1):
            for j in range(i+k,changdu+1):
                liebiao=xulie[i:j]
                aa.append(Midnumber(liebiao))
        return max(aa) 

发表于 2022-04-23 14:22:06 回复(0)

问题信息

难度:
1条回答 3358浏览

热门推荐

通过挑战的用户

查看代码