Tripadvisor interview question

Find number of pairwise elements in an array with difference k.

Interview Answers

Anonymous

29 Oct 2014

Assuming no duplicates, sort an array, iterate through it and find a number a[i]+k, code: public void find(int[]a, int k){ if(a==null||a.length==0)return; if(k == 0){ //since the elements are distinct return; } Arrays.sort(a); for(int i = 0; i =0){ System.out.println(a[i] + " " + a[idx]); } } }

Anonymous

20 Nov 2015

No sorting required.. use hash map. it is O(n) algorithm

Anonymous

20 Sept 2018

def find(nums, k): dic = {} res = [] for i in nums: if i not in dic: dic[k+i]=i else: res.append([dic[i],i]) return res nums = [x for x in range(1,11)] print find(nums, 3)