有一个排序数组(例如:[1, 2, 3, 4, 5, 6, 7]
)。
现在,某些数字(例如:-2
)“错误地”插入(例如:[1, 2, 3, 4, -2, 5, 6, 7]
)。
如何才能找到这样一个错位的数字?
答案 0 :(得分:0)
如果一个号码未分类,那么它非常简单。
对于除第一个以外的每个号码,如果它小于前一个号码,则它不按顺序排列。
这种野兽的伪代码类似于:
def findIndexOfFirstOutOfOrderElement(list):
for index in 2 to list.last inclusive:
if list[index] < list[index-1]:
return index
return -1
如果整个列表排序正确,那将为您提供第一个无序元素或-1
的索引。
如果你想找到其他人,要么修复那个索引,然后再次调用该函数(直到你得到-1
),或者修改函数来处理这个要求 - 我会留下那个作为读者的练习: - )
答案 1 :(得分:0)
我认为你应该使用如下:
假设var list = [1,2,3,4,-2,5,6,7];
for(var i = 1; i&lt; list.length; i ++){
if(list[i] < list[i-1]){
return list[i];
}
}
提醒变量我从1开始,否则它将超出范围。
答案 2 :(得分:-1)
公共类HelloWorld {
public static void main(String []args){
int a[]= {1,2,3,4,-2,5,6};
for(int i=0; i < a.length-1; i++){
if(a[i] < a[i+1]){
//
} else {
System.out.print(a[i+1]);
break;
}
}
}
}
此代码将首先打印未分类的数字。