# Picking Numbers Hacker Rank Solution Best & Easiest

Picking Numbers Hacker Rank Solution Best & Easiest

In this post, we will solve the Picking Numbers HackerRank Solution. This problem (Picking Numbers) is a part of the HackerRank Problem Solving series.

Given an array of integers, find the longest subarray where the absolute difference between any two elements is less than or equal to 1.

Example

a= [1, 1, 2, 2, 4, 4, 5, 5, 5]

## Picking Numbers Hacker Rank Solution

### Problem solution in JavaScript programming:

function pickingNumbers(a) {
let map = {};
let max = 0;
for (let item of a){
let first = item;
let second = item -1;
let temp;

map[first] = map[first] ? map[first] + 1 :1;
map[second] = map[second  ] ? map[second] + 1 :1;

temp= Math.max(map[first],map[second]);

max = Math.max(max,temp)

}
return max
}


### Problem solution in Python programming:

def pickingNumbers(a):
count = [0] * (int(max(a)) + 1)
for i in a:
count[i] += 1
maxVal = 0
for i in range(1, len(count)-1):
maxVal = (max(count[i] + count[i-1], count[i] + count[i+1], maxVal))
return maxVal


### Problem solution in Java programming:

public static int pickingNumbers(List<Integer> a) {

int maxSubArrSize = 0;
Collections.sort(a);
for (int i=0; i<a.size()-1; i++) {
int subArrSize = 1;
for (int j=i+1;j<a.size(); j++) {
if(Math.abs(a.get(i)-a.get(j)) <= 1) {
subArrSize++;
} else {
break;
}
}
if (subArrSize > maxSubArrSize) {
maxSubArrSize = subArrSize;
}
}
return maxSubArrSize;
}