Find unique elements from given Array in Java with Explanation | Lonely Integer Hackerrank solution
Problem Description :
Given an array of integers, where all elements but one occur twice, find the unique element.
Example :
array = [1, 2, 3, 4, 3, 2, 1]
The unique element is 4.
So we have given array, in which all elements occurs twice but 1 elements only occurs once and we have to find that unique element.
Solution 1 : Find unique element from Java array
import java.io.*;
import java.util.*;
import java.util.stream.*;
import static java.util.stream.Collectors.toList;
class Result {
public static int lonelyinteger(List<Integer> a) {
Map<Integer, Integer> map = new HashMap<>();
for (Integer elem : a) {
if (!map.containsKey(elem)) {
map.put(elem, 1);
} else {
map.put(elem, map.get(elem)+1);
}
}
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if (entry.getValue() == 1) {
return entry.getKey();
}
}
return 0;
}
}
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(System.in));
BufferedWriter bufferedWriter = new BufferedWriter(
new FileWriter(System.getenv("OUTPUT_PATH")));
int n = Integer.parseInt(bufferedReader.readLine().trim());
List<Integer> a = Stream.of(bufferedReader.readLine()
.replaceAll("\\s+$", "").split(" "))
.map(Integer::parseInt)
.collect(toList());
int result = Result.lonelyinteger(a);
bufferedWriter.write(String.valueOf(result));
bufferedWriter.newLine();
bufferedReader.close();
bufferedWriter.close();
}
}
Solution explanation :
- Here we are using Map for find solution of Lonely Integer problem.
- In first foreach loop, store all List elements and its occurrence in map. Like [1=2, 2=2, 3=2, 4=1]
- Using this approach, map contains all elements and its occurrence value.
- In second foreach loop, iterate through Map and return Key whoever Value contains 1. Means unique element.
Happy coding. Happy learning.
Other HackerRank problem and its solution with explanation :
HackerRank Solution for Java Dequeue Problem
Java Solution for HackerRank Diagonal Difference problem
Comments
Post a Comment