Я ищу алгоритм для определения, есть ли в массиве как минимум три последовательных числа. Я нашел несколько и немного изменил их, но он, похоже, не работает. Вот что я сейчас делаю. Массив сортируется с использованием NSSortDescriptor
перед циклом.Поиск последовательных целых чисел в массиве
Например:
в массиве [5,6,101,102,103] три последовательных числа [101102103]
и ниже функция должна возвращать YES
.
int c = [checkArray count];
int a,b = 0;
int cnt = 1;
for (int i = 1; i < c; i++)
{
a = [[checkArray objectAtIndex:i] intValue];
b = [[checkArray objectAtIndex:i-1] intValue] - 1;
if (a == b)
{
cnt++;
if (cnt == 3)
return YES;
} else {
cnt = 1;
}
}
return NO;
Это работает как шарм. Благодаря! –