gpt4 book ai didi

objective-c - 查找数组中的连续整数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:42:47 24 4
gpt4 key购买 nike

我正在寻找一种算法来确定数组中是否至少有三个连续的数字。我找到了几个并稍微调整了它们,但它似乎不起作用。以下是我目前正在做的事情。在循环之前使用 NSSortDescriptor 对数组进行排序。

例如:
在数组 [5,6,101,102,103] 中,三个连续的数字是 [101,102,103]
并且下面的函数应该返回 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;

最佳答案

这是另一种方法。我还没有测试过,但你应该明白了。

int c = [checkArray count];
int a,b,c = 0;

a = [[checkArray objectAtIndex:0] intValue];
b = [[checkArray objectAtIndex:1] intValue];
for (int i = 2; i < c; i++)
{
c = [[checkArray objectAtIndex:i] intValue];
if (a+2 == b+1 && b+1 == c)
return YES;
a = b;
b = c;
}
return NO;

它具有易于优化的额外优势。

关于objective-c - 查找数组中的连续整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41656535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com