How to check if an array contain consecutive integers in Java

2 Answers

0 votes
import java.util.HashSet;
import java.util.Set;
 
public class MyClass
{
    public static boolean array_contain_consecutive_integers(int[] arr) {
        if (arr.length <= 1) {
            return true;
        }
 
        int min = arr[0], max = arr[0];
 
        for (int val: arr) {
            if (val < min) { min = val; }
            if (val > max) { max = val; }
        }
 
        if (max - min != arr.length - 1) {
            return false;
        }

        Set<Integer> st = new HashSet<>();
 
        for (int val: arr) {
            if (st.contains(val)) {
                return false;
            }
            st.add(val);
        }
        return true;
    }
 
    public static void main(String[] args)
    {
        int[] arr = { -2, 3, 0, -1, 4, 2, 1 };
 
        if (array_contain_consecutive_integers(arr)) {
            System.out.print("Yes");
        }
        else {
            System.out.print("No");
        }
    }
}




/*
run:
 
Yes
 
*/

 



answered Aug 19, 2022 by avibootz
0 votes
import java.util.IntSummaryStatistics;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
 
public class MyClass
{
    public static boolean array_contain_consecutive_integers(int[] arr) {
        if (arr.length <= 1) {
            return true;
        }
 
        IntSummaryStatistics summaryStat = Arrays.stream(arr).summaryStatistics();
         
        int min = summaryStat.getMin();
        int max = summaryStat.getMax();
 
        if (max - min != arr.length - 1) {
            return false;
        }

        Set<Integer> st = new HashSet<>();
 
        for (int val: arr) {
            if (st.contains(val)) {
                return false;
            }
            st.add(val);
        }
        return true;
    }
 
    public static void main(String[] args)
    {
        int[] arr = { -2, 3, 0, -1, 4, 2, 1 };
 
        if (array_contain_consecutive_integers(arr)) {
            System.out.print("Yes");
        }
        else {
            System.out.print("No");
        }
    }
}




/*
run:
 
Yes
 
*/

 



answered Aug 19, 2022 by avibootz

Related questions

1 answer 122 views
1 answer 109 views
1 answer 130 views
1 answer 116 views
1 answer 106 views
...