求助~~ Python写的哈希+二分 第2和第4个测试点TLE呜呜呜
查看原帖
求助~~ Python写的哈希+二分 第2和第4个测试点TLE呜呜呜
637635
I_LOVE_SZ楼主2022/12/6 14:09
N, C = map(int, input().split())
nums = list(map(int, input().split()))
nums.sort()
myhash = {}
for i in range(N):
    if nums[i] in myhash:
        myhash[nums[i]] += 1
    else:
        myhash[nums[i]] = 1
ans = 0
for i in range(N):
    low = i + 1
    high = N - 1
    while low <= high:
        mid = (low + high) // 2
        if nums[mid] - nums[i] == C:
            ans += myhash[nums[mid]]
            break
        elif nums[mid] - nums[i] < C:
            low = mid + 1
        else:
            high = mid - 1
print(ans)
2022/12/6 14:09
加载中...