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

相差不超过k的最多数

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

def max_numbers_with_difference_k(nums, k):
    nums.sort()  # 先对数组进行排序
    count = 1
    left, right = 0, 1

    while right < len(nums):
        # 判断右边界元素与左边界元素的差值是否超过 k
        if nums[right] - nums[left] <= k:
            # 没超过 k,则右边界右移
            right += 1
            # 更新最大选择数目的记录
            count = max(count, right - left)
        else:
            # 超过了 k,则左边界右移
            left += 1

    return count


# 示例调用
n, k = map(int, input().split())
nums = list(map(int, input().split()))
print(max_numbers_with_difference_k(nums, k))

全部评论

相关推荐

06-20 19:40
中原工学院 Java
网络存储:十几天不会让你拉人办卡就结束了吧?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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