我对Java编程有很多外行问题。
我想编写一个函数来检查数字列表是否是顺序的。
说[1,2,3,4,5],该函数将返回true,
但对于[1,3,4,9,10],函数将返回false。
有人可以帮助我吗?
非常感谢!
答案 0 :(得分:3)
编写一个查看列表中每个元素的循环。
对于列表中的每个位置i
,测试列表 i + 1等于列表 i + 1 。
您可以自己编码作为练习。 (别忘了处理边缘情况......)
更新: ...将此问题视为学习练习的人。
简单的直接实施方法可能是最好的想法;例如@乔的最终答案。然而,简单的方法并不总是很好......或者根本不可能:
List
实现的get
方法为O(N)
。这将导致整体O(N^2)
算法。list.get(i)
可能不是一种选择。在这种情况下,您可以使用迭代器一次通过列表来实现算法。你需要在变量中保留“前一个元素”,等等。
答案 1 :(得分:0)
逻辑很简单。只需获取第一个数字并检查它是否与下一个值匹配。就像检查相邻值一样。如果条件在任何时候都失败,则中断。如果所有if条件都为真,则列表将是顺序的。
答案 2 :(得分:0)
正如Stephen C所说,这是一个非常简单的逻辑
int a[] = { 1, 2, 3, 4, 5,7 };
boolean flag = true;
for (int i = 0; i < a.length - 1; i++) {
if (a[i + 1] != a[i] + 1) {
flag = false;
break;
}
}
System.out.println("Flag is " + flag);