Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import heapq
- class Solution:
- def findClosestElements(self, arr: List[int], k: int, x: int) -> List[int]:
- diff_map = {}
- diff_list = set([])
- for val in arr:
- key = abs(x-val)
- diff_list.add(key)
- if key in diff_map:
- diff_map[key].append(val)
- else:
- diff_map[key] = [val]
- diff_list = list(diff_list)
- #print(diff_list)
- #print(diff_map)
- heapq.heapify(diff_list)
- count = 0
- flag = True
- result = []
- while (flag and diff_list):
- key = heapq.heappop(diff_list)
- #print(key)
- val = diff_map[key]
- val.sort()
- for v in val:
- #print('v: ', v)
- if count<k:
- result.append(v)
- count += 1
- else:
- flag = False
- break
- result.sort()
- return result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement