Write a method
isConsecutive
that accepts an ArrayList of integers as a parameter and returns true if the list contains a sequence of consecutive integers and false otherwise. Consecutive integers are integers that come one after the other in ascending order, as in 5, 6, 7, 8, 9, etc. For example, if a variable called list stores the values[3, 4, 5, 6, 7, 8, 9]
, then the call oflist.isConsecutive()
should return true. If the list instead stored[3, 4, 5, 6, 7, 12, 13]
then the call should return false because the numbers 7 and 12 are not consecutive. The list[3, 2, 1]
might seem to be consecutive, but the elements appear in reverse order, so the method would return false in that case. Any list with fewer than two values should be considered to be consecutive. You may assume that the list passed is not null.
Wondering which better ways there are to do this, and how to improve my future code.
public boolean isConsecutive(ArrayList<Integer> list) {
int count = 0;
for (int i = 0; i < list.size() - 1; i++) {
if (list.get(i) == (list.get(i + 1) - 1)) {
count++;
} else {
count = 0;
}
}
return list.size() - 1 == count || list.isEmpty();
}