找到未分类的数字

时间:2016-06-22 02:38:34

标签: arrays sorted

找到未分类/错位的号码

有一个排序数组(例如:[1, 2, 3, 4, 5, 6, 7]

现在,某些数字(例如:-2“错误地”插入(例如:[1, 2, 3, 4, -2, 5, 6, 7]

如何才能找到这样一个错位的数字?

3 个答案:

答案 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;
        }
    }
 }

}

此代码将首先打印未分类的数字。