Find Missing Number in Java (5 Best Methods) | Java 8 Stream Interview Question

 Find Missing Number in Java (5 Best Methods) | Java 8 Stream Interview Question

✔ Sum Formula Method ✔ IntStream.rangeClosed() ✔ HashSet Optimization ✔ Reduce Method ✔ Frequency Map Technique


 Please click on below image to check the video. Video will have more clarification. I would request you please go and check for better understanding.




 package org.practice.basicprgms;


import java.util.Arrays;

import java.util.HashSet;

import java.util.List;

import java.util.Map;

import java.util.Set;

import java.util.function.Function;

import java.util.stream.Collectors;

import java.util.stream.IntStream;


public class FindMissingNumber {


public static void main(String[] args) {

List<Integer> list = Arrays.asList(1,2,3,4,6,7,8);

int n = list.size() + 1;

// Solution 1: Using Sum Formula:

int expectedSum = n * (n + 1)/2;

int actualSum = list.stream()

.mapToInt(Integer::intValue)

.sum();

System.out.println("Missing Number : "+ (expectedSum - actualSum));

// Solution 2: Using List and IntStream Class

int missingNum = IntStream.rangeClosed(1, n)

.filter(num -> !list.contains(num))

.findFirst()

.orElse(-1);

System.out.println("Missing Numer using List: "+ missingNum);

// Solution 3 Using HashSet

Set<Integer> set = new HashSet<>(list);

missingNum = IntStream.rangeClosed(1, n)

.filter(num -> !set.contains(num))

.findFirst()

.orElse(-1);

System.out.println("Missing Numer using Set: "+ missingNum);

// Solution 4 Using Reduce MEthod

expectedSum = IntStream.rangeClosed(1, n).sum();

actualSum = list.stream()

.reduce(0, Integer::sum);

System.out.println("Missing Number using reduce method: "+ (expectedSum - actualSum));

// Solution 5 : Using HashMap

Map<Integer, Long> map =

list.stream()

.collect(Collectors.groupingBy(Function.identity(),

Collectors.counting()));

missingNum = IntStream.rangeClosed(1, n)

.filter(num -> !map.containsKey(num))

.findFirst()

.orElse(-1);

System.out.println("Missing Numer using HashMap: "+ missingNum);

}


}









Post a Comment

0 Comments