数组元素是非负整数,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; }
[算法]一整型数组,除了0之外,其他不重复,判断数组元素是否相邻
时间: 2024-12-25 00:19:07