给出一个未排序的数组,但是相同的元素彼此相邻。 是否可以检查数组是否包含至少出现array.size()/ 4次的任何元素?
使用哈希表进行线性扫描是微不足道的,我想知道是否有任何算法的复杂度甚至更高。
谢谢。
答案 0 :(得分:0)
如果相同元素始终仅在遍历中彼此相邻,则查找具有最大条目数的元素。
如果最大值为int index=0, currentSize, maxSize = 0, currentElem;
while (index<array.length){
currentElem = array[index];
currentSize = 1;
index++;
while (index<array.length && currentElem==array[index]){
currentSize++;
index++;
}
if (maxSize<currentSize) {
maxSize = currentSize;
}
}
if (maxSize>=array.length/4) return "Yes";
else return "No";