just add Collections.. to findout Hashset Max and Min number import java.util.Collections; import java.util.HashSet; public class MissingNumberDemo { public static void main(String[] args) { Integer a[]= {2,4,1,5,7,8,12}; missingNumbers(a); } private static void missingNumbers(Integer[] a) { HashSet set = new HashSet(); for(int num:a) { set.add(num); } int max=Collections.max(set); int min=Collections.min(set); for(int i=min; i
try to change any of the numbers. say make 2 as 12 in the array. The solution wouldn't work. we have to find the min and max element in the array and iterate. can use a treeset. import java.util.TreeSet; public class MissingNumbers { public static void main(String args[]) { Integer arr[] = {12,4,0,7,1,8,5}; missingNos(arr); } public static void missingNos(Integer a[]) { TreeSet set = new TreeSet(); for(int n : a) { set.add(n); } int small = set.first(); int large = set.last(); for(int i=small ; i
Yes you are correct this logic is not working if we change the numbers in the array....with your approach it worked fine for me as well...Dear author please add the same
public class Program { static void Main(string[] args) { int[] nums = {2,4,1,5,7,8,0 }; int n = nums.Max(); for(int i =0;i< n; i++) { if (!nums.Contains(i)) { Console.WriteLine(i); } } } }
bcause default sorting nature order of HashSet is ascending when you remove the ! from contains() so you will get output 0124578 but when you use arraylist you will get 2,4,1,5,7,8,0 bcoz insertion order is preserved
import java.util.HashSet; import java.util.Set; public class MissingNumberDemo { public static void main(String[] args) { int a[]= {3,5,9,0,2}; Set list = missingNumbers(a); System.out.println(list); } public static Set missingNumbers(int[] num){ Set missingnumber = new HashSet(); Set list = new HashSet(num.length); for(int n : num){ list.add(n); } int max = num[0], min = num[0]; for(int i=1;i
i would say, your code is not correct. check mine public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = {0,1,2,3,4,5,10,15}; HashSet hs = new HashSet(); for(int i : arr) { hs.add(i); } Arrays.sort(arr); for(int i =0;i