Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. import heapq
  2. class Solution:
  3. def findClosestElements(self, arr: List[int], k: int, x: int) -> List[int]:
  4. diff_map = {}
  5. diff_list = set([])
  6.  
  7. for val in arr:
  8.  
  9. key = abs(x-val)
  10. diff_list.add(key)
  11.  
  12. if key in diff_map:
  13. diff_map[key].append(val)
  14. else:
  15. diff_map[key] = [val]
  16.  
  17.  
  18. diff_list = list(diff_list)
  19. #print(diff_list)
  20. #print(diff_map)
  21. heapq.heapify(diff_list)
  22.  
  23. count = 0
  24. flag = True
  25. result = []
  26. while (flag and diff_list):
  27. key = heapq.heappop(diff_list)
  28. #print(key)
  29. val = diff_map[key]
  30. val.sort()
  31. for v in val:
  32. #print('v: ', v)
  33. if count<k:
  34. result.append(v)
  35. count += 1
  36. else:
  37. flag = False
  38. break
  39.  
  40. result.sort()
  41.  
  42. return result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement