用php實現找出數組中唯一不重複的元素

給定一個數組找出數組中唯一一個不重複的元素,要求只能遍歷一次,不能使用額外的空間,怎麼實現?

首先我回反問下數組中重複元素是相鄰的嗎?

如果是相鄰的可以用異或運算,一個數異或它本身是0

例如 0^1 = 1 1^0=1,0^0= 01^1=0 只有在兩個比較的位不同時其結果是1,否則結果爲0

數組元素是[1,1,2,3,3,4,4,5,5]

用php代碼實現

function NumberOf1($arr){
    $res = -1;
    $len = count($arr);
    $res = $arr[0];
    for($i=1;$i<$len;$i++){
        $res = $res ^ $arr[$i];
		
    }
    return $res;
}

結果輸出2

謝謝,all!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章