leetcode算法

Single Number II

问题描述

Given an array of integers, every element appears three times except for one. Find that single one. single-number-ii

解决方案

  • 思路1
int singleNumber(vector& nums)
{
    //特殊情况1
    if(nums.size() == 0)
    {
        return 0;
    }

    //特殊情况2
    if(nums.size() == 1)
    {
        return nums.at(nums.size()-1);
    }

    size_t count = 1;

    sort(nums.begin(), nums.end());

    for(size_t index=0; index
  • 思路2
int singleNumber(vector& nums)
{
    int result = 0;
    vector count(32, 0);

    for(int i=0; i> i);
        }
    }

    for(int i=0; i
  • 思路2
int singleNumber(vector& nums)
{
    int counterOne = 0;
    int counterTwo = 0;

    for (int i = 0; i < nums.size(); i++)
    {
        counterOne = (~counterTwo) & (counterOne ^ nums[i]);
        counterTwo = (~counterOne) & (counterTwo ^ nums[i]);
    }

    return counterOne;    
}

你可能感兴趣的:(leetcode算法)