0
点赞
收藏
分享

微信扫一扫

数组中只出现一次的两个数字

和谐幸福的人生 2022-02-26 阅读 109
链表
<?php


/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param array int整型一维数组 
 * @return int整型一维数组
 * 异或相同为0不同为1
 */
function FindNumsAppearOnce( $array )
{
    $tmp = 0;
    foreach($array as $ar){
        $tmp  = $tmp^ $ar;
    }
    
    $mask = 1;
    while(($tmp&$mask)==0){
        $mask<<=1;
    }
    $a = $b = 0;
    foreach($array as $r){
        if(($r&$mask) == 0){
            $a  = $a ^ $r;
        }else{
            $b  = $b ^ $r;
        }
    }
    
   if($a>$b){
       return [$b,$a];
   }else{
       return [$a,$b];
   }
    
    
    // write code here
}
举报

相关推荐

0 条评论