import sys # for line in sys.stdin: # a = line.split() # print(int(a[0]) + int(a[1])) """ 测试用例1 1 2 2 3 5 4 测试用例2 ---------------------------------- 3 683241938 1 737202770 72474 0701 2 [737202770 72474 0701] 长度为2 ------------------------------------ 测试用例三 12 143115078 395834330 220145190 83459824 663277015 235306933 31264452 918642913 241780136 429712249 443997814 253780219 61899031 排序之后 最大[left,right]出现 在中间位置 solve1 无法解决 [31264452, 61899031, 83459824, 220145190, 235306933, 241780136, 253780219, 395834330, 429712249, 443997814, 663277015, 918642913] """ def sovle1(): ns =list(map(int,input().split())) k=ns[1] nums= list(map(int ,input().split())) nums.sort() left =0 right =len(nums)-1 # 从左到右 while left<right: print(nums[left],nums[right],nums[right]-nums[left]>k) if nums[right]-nums[left]>k: right-=1 else: break ret1=0 if right>left: ret1 =right-left+1 print(nums,left,right) left=0 right=len(nums)-1 while left<right: print(nums[left],nums[right],nums[right]-nums[left]>k) if nums[right]-nums[left]>k: left+=1 else: break ret2=0 if left<right: ret2=right-left+1 print(nums,ret1,ret2) ret =max(ret1,ret2) print(ret) """ 参考题解: https://blog.nowcoder.net/n/60acf363a90745fcb1adf4692bd1709f """ def sovle2(): ns =list(map(int,input().split())) k=ns[1] nums= list(map(int ,input().split())) nums.sort() n =len(nums) left =0 #right =len(nums)-1 right=0 # 移动右指针 ret =0 # 从左到右 while right<n: #print(nums[left],nums[right],nums[right]-nums[left]>k) if nums[right]-nums[left]>k: left +=1 # 如果 出现在中间部分 需要移动left ret=max(ret ,right-left+1) right+=1 print(ret) sovle2()