【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

[leetcode] 【数组】 137. Single Number II

原创 2016年05月30日 10:32:18

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?


题意

一个整数数组中,有一个元素只出现一次,其他每个元素都出现3次,找出这个元素。

题解

这里也是根据位的特性来处理,用于一个int所占bit数大小的数组count来存储二进制数的每一位。
把nums数组所有数都按位加在count数组中,然后对3求余,剩下的数就是只出现一次的数。

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        const int sizeint=sizeof(int)*8;
        vector<int> count(sizeint);
        for(auto i: nums)
        {
            for(int j=0;j<sizeint;j++)
            {
                count[j]+=(i>>j) &1;
                count[j]%=3;
            }
        }
        int res=0;
        for(int i=0;i<sizeint;i++)
            res+=(count[i]<<i);
        return res;
    }
};



版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

[LeetCode 137] Single Number II(位运算的巧妙运用初级篇)

题目内容137 Single Number II Given an array of integers, every element appears three times except for ...

LeetCode[位运算] - #137 Single Number II

<strong style="line-height: 1.5; background-
  • Cwind
  • Cwind
  • 2015-07-18 22:18
  • 1990

LeetCode 137. Single Number II 解题报告

LeetCode 137. Single Number II 解题报告

[LeetCode]*137.Single Number II

【题目】 Given an array of integers, every element appearsthree</s

[LeetCode]*137.Single Number II

【题目】 Given an array of integers, every element appears three times except for one. Find that singl...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)