AP® Computer Science A

Free Version

Upgrade subject to access all content

Difficult

Consecutive Numbers in Array of Integers

APCSA-NYDYGN

The numbers array contains an array of increasing integers.

Which of the following methods will take this array as its parameter and return the number of groups of consecutive integers?

For example, if the numbers array contains {3, 9, 10, 11, 15, 17, 18, 20, 21, 22, 25}, then the method should return 3, since there are three groups of consecutive integers: first group is 9, 10, 11, second group is 17, 18, and third group is 20, 21, 22.

A
public static int groupsOfConsecutiveInts(int[] numbers)
{
    int count = 0;
    for (int i=1; i<numbers.length; i++)
    {
        if (numbers[i]== numbers[i-1]+1)
        {
            count = count+1;
        }
    }
    return count;
}
B
public static int groupsOfConsecutiveInts(int[] numbers)
{
    int count = 0;
    boolean isConsecutive = false;
    for (int i=1; i<numbers.length; i++)
    {
        if (numbers[i]== numbers[i-1]+1)
        {
            if (!isConsecutive)
                count = count+1;
            isConsecutive = true;
        }
        isConsecutive = false;
    }
    return count;
}
C
public static int groupsOfConsecutiveInts(int[] numbers)
{
    int count = 0;
    for (int i=1; i<numbers.length; i++)
    {
        if (numbers[i] == numbers[i-1]+1 && 
            numbers[i-1] !=  numbers[i-2]+1)
        {
            count = count+1;
        }
    }
    return count;
}
D
public static int groupsOfConsecutiveInts(int[] numbers)
{
    int count = 0;
    boolean isConsecutive = false;
    for (int i=1; i<numbers.length; i++)
    {
        if (numbers[i]== numbers[i-1]+1)
        {
            if (!isConsecutive)
                count = count+1;
            isConsecutive = true;
        }
        else
            isConsecutive = false;
    }
    return count;
}
E
public static int groupsOfConsecutiveInts(int[] numbers)
{
    int count = 0;
    for (int i=1; i<numbers.length; i++)
    {
        if (numbers[i] == numbers[i-1]+1 && 
            numbers[i-1] !=  numbers[i-2]+1 && i>1)
        {
            count = count+1;
        }
    }
    return count;
}