题解 | #相差不超过k的最多数#

相差不超过k的最多数

https://www.nowcoder.com/practice/562630ca90ac40ce89443c91060574c6

由于题目中取的是任意两个数字相差不超过 k, 则保证子数组中 max - min <= k 即可,对数组进行排序,利用双指针遍历数组的,当前值与子数组中的最小值相差超过 k 时,移动左指针,最终得到可以取的最大数组长度
 
n, k = map(int, input().strip().split(" "))
data = sorted(map(int, input().strip().split(" ")))
res = 0
l = r = 0
while r < n:
    while data[r] - data[l] > k:
        l += 1
    res = max(res, r - l + 1)
    r += 1
print(res)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务