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);
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 {
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); } } } }
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
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
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
Great solution
One of the best YT Channel to Learn Programming 🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
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
I was also thinking about this solution
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
Good
First you need find max element and store that to n it perfectly
Just assume if the int a[] ={2,8,3}..to find the missing numbers ..how to do this?
void printMissingNumbers(int[] nums) {
Arrays.sort(nums);
int counter =0;
for (int i = 0; i < nums[nums.length-1];i++) {
if (i==nums[counter]) {
counter++;
} else {
System.out.println(i);
}
}
}
Program wont work if we remove 3 elements in an array
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);
}
}
}
}
nicee thankyou
Wrong program
If we find missing number from {2,8};
Then it will not show all missing number between 2 and 8
wrong
wrong
wrong
wrong
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
can you explain why did you choose HashSet for this?
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
but you can use anything bcoz your opretion is to find missing numbers so hashset not necessory