Message on Whatsapp 8879355057 for DSA(OA + Interview) + Fullstack Dev Training + 1-1 Personalized Mentoring to get 10+LPA Job
0 like 0 dislike
1,933 views
in Online Assessments by Expert (44,360 points) | 1,933 views

3 Answers

0 like 0 dislike
Best answer
Given an array A of N integers, return true if A contains at least two elements which differ by 1, and false otherwise.

 

Example,
A = [7] , return false
A = [4,3], return true (3,4)
A = [11, 1, 8, 12, 14] , return true (11,12)
A = [5, 5, 5, 5, 5], return false
A = [4, 10, 8, 5, 9], return true (4,5), (8,9), (9,10)
by Expert (44,360 points)
0 like 0 dislike
Python solution

arr = list(set(arr)) # make list of unique element
arr.sort() # sort the list
for i in range(len(arr)-1):
if arr[i+1] - arr[i] == 1: return True
return False
by Expert (44,360 points)
0 like 0 dislike

Java solution:

 

public static void main(String[] args) {
	int[] nums1 = {7};
	int[] nums2 = {4,3};
	int[] nums3 = {11, 1, 8, 12, 14};
	int[] nums4 = {5 ,5 ,5, 5, 5};
	int[] nums5 = {4, 10, 8, 5, 9};
	System.out.println(solve(nums1));
	System.out.println(solve(nums2));
	System.out.println(solve(nums3));
	System.out.println(solve(nums4));
	System.out.println(solve(nums5));
}

private static boolean solve(int[] nums) {
	Set<Integer> set = new HashSet<>();
	for(int n : nums) {
		if(set.contains(n-1) || set.contains(n+1))
			return true;
		set.add(n);
	}
	return false;
}
by Expert (44,360 points)