single-number-ii

作者: cherryleechen | 来源:发表于2019-05-10 14:10 被阅读0次

    时间限制:1秒 空间限制:32768K

    题目描述

    Given an array of integers, every element appears three times except for one. Find that single one.
    Note:
    Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

    我的代码

    class Solution {
    public:
        int singleNumber(int A[], int n) {
            int ones=0, twos=0,threes=0;
            for(int i=0;i<n;i++){
                int cur=A[i];
                twos|=(ones&cur);//在更新ones之前先更新twos
                ones^=cur;
                threes=ones&twos;//既出现1次也出现2次的即出现了3次
                ones&=(~threes);//去除出现3次的
                twos&=(~threes);//去除出现3次的
            }
            return ones;
        }
    };
    

    运行时间:4ms
    占用内存:592k

    相关文章

      网友评论

        本文标题:single-number-ii

        本文链接:https://www.haomeiwen.com/subject/pucaoqtx.html