剑指 Offer 56 - II. 数组中数字出现的次数 II

地址:https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-ii-lcof/

<?php
/**
 * Created by PhpStorm.
 * User: huahua
 * Date: 2020/10/22
 * Time: 下午6:03
剑指 Offer 56 - II. 数组中数字出现的次数 II
在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。



示例 1:

输入:nums = [3,4,3,3]
输出:4
示例 2:

输入:nums = [9,1,7,9,7,9,7]
输出:1


限制:

1 <= nums.length <= 10000
1 <= nums[i] < 2^31
 */
class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function singleNumber($nums) {
        $ones=$twos = 0;
        foreach($nums as $num){
            $ones = $ones ^ $num & ~$twos;
            $twos = $twos ^ $num & ~$ones;
        }
        return $ones;
    }
}

 

posted @ 2020-10-22 18:03  花花妹子。  阅读(67)  评论(0编辑  收藏  举报