测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A21089. 下面程序的运⾏结果为( )。def check(n, a, k, dist): cnt = 1 last = a for i in range(1, n): if a[i] - last >= dist: cnt += 1 last = a[i] return cnt >= k def solve(n, a, k): a.sort() l = 0 r = a[-1] - a while l<r:…

单选题 困难

题目描述

下面程序的运⾏结果为(    )。

def check(n, a, k, dist):
    cnt = 1
    last = a

    for i in range(1, n):
        if a[i] - last >= dist:
            cnt += 1
            last = a[i]

    return cnt >= k

def solve(n, a, k):
    a.sort()

    l = 0
    r = a[-1] - a

    while l<r:
        mid=(l+r+1)//2
        if check(n,a,k,mid):
            l=mid
        else
            r=mid-1
    return   l 

if __name__ == "__main__":
    a = [1, 2, 8, 4, 9]
    n = 5
    k = 3
    result = solve(n, a, k)
    print(result)

选项(单选)

上一题 下一题