首页 > 代码库 > [算法]一整型数组,除了0之外,其他不重复,判断数组元素是否相邻

[算法]一整型数组,除了0之外,其他不重复,判断数组元素是否相邻

数组元素是非负整数,0可以化为任意正整数,要求时间复杂度为O(n)

觉得很奇怪的题目,遍历一次找到最值相减得到极差就行了,如果极差小于数组长度n,则元素相邻,否则不相邻

bool is_adjacent(int* a, int n){    int min = 65535, max = 0;    for(int i = 0; i < n; ++i){        if(!a[i] && a[i] < min){            min = a[i];        }        else if(!a[i] && a[i] > max){            max = a[i];        }        else{}    }    if(max - min >= n){        return false;    }    return true;}