5、区间第k最小

Description

找到给定数组的给定区间内的倒数第K小的数值。

Input

输入的第一行为数组,每一个数用空格隔开;第二行是区间(第几个数到第几个数,两头均包含),两个值用空格隔开;第三行为K值。

Output

结果。

Sample Input 1 

1 2 3 4 5 6 7

3 5

2

Sample Output 1

4

class minmum:
    def minsubsum(self,arrag,a,b,s):
        arrnew=[]
        for i in range(int(a)-1,int(b)):
             arrnew.append(arrag[i])
        sd=self.mins(arrnew,s)
        return sd
    def mins(self,arrag1,s):
        for i in range(len(arrag1)):
            for j in range(i,len(arrag1)):
                if int(arrag1[i]) > int(arrag1[j]):
                    temp= arrag1[i]
                    arrag1[i]=arrag1[j]
                    arrag1[j]=temp
        #print(arrag1)
        ls=arrag1[int(s)-1]
        return ls

if __name__ == "__main__":
    A=[]
    B=[]
    ms=minmum()
    sda=input()
    sde=sda.split()
    A.extend(sde)
    s=input()
    e=input()
    h=s.split()
    B.extend(h)
    fde=ms.minsubsum(A,B[0],B[1],e)
    print(fde)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值