5、区间第k最小

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhou_pp/article/details/85161844

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)

猜你喜欢

转载自blog.csdn.net/zhou_pp/article/details/85161844