zoukankan      html  css  js  c++  java
  • LeetCode 137. 只出现一次的数字 II

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。

    说明:

    你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

    示例 1:

    输入: [2,2,3,2]
    输出: 3
    

    示例 2:

    输入: [0,1,0,1,0,1,99]
    输出: 99
     1 class Solution {
     2 public:
     3     int singleNumber(vector<int>& nums) {
     4         sort(nums.begin(),nums.end());
     5         int n = nums.size();
     6         int k = nums[0];
     7         int ans = 0;
     8         if(n == 1)
     9             return nums[0];
    10         else if(nums[0] != nums[1])
    11             return nums[0];
    12         for(int i  = 1; i < n;++i)
    13         {
    14             
    15             if(i!= n-1 && nums[i] != nums[i-1] && nums[i] != nums[i+1])
    16             {
    17                 ans = nums[i];
    18                 break;   
    19             }
    20             else if(i == n-1 && nums[i] != nums[i-1])
    21             {
    22                 ans = nums[i];
    23                 break;   
    24             }
    25             
    26         }
    27         return ans;
    28     }
    29     
    30 };
     1 class Solution {
     2 public:
     3     int singleNumber(vector<int>& nums) {
     4         set<int> s(nums.begin(),nums.end());
     5         long long  sum1 = 0;
     6         set<int>::iterator it = s.begin();
     7         for(;it!=s.end();++it)
     8         {
     9             sum1 += *it;
    10         }
    11         long long sum2 = 0;
    12         for(int i = 0;i < nums.size();++i)
    13         {
    14             sum2 += nums[i];
    15         }
    16         return (3*sum1 - sum2)/2;
    17         
    18     }
    19     
    20 };
    1 int singleNumber(vector<int>& nums) {
    2     int a = 0, b = 0;
    3     for (auto x : nums) {
    4         b = (b ^ x) & ~a;
    5         a = (a ^ x) & ~b;
    6     }
    7     return b;
    8 }
  • 相关阅读:
    android自定义控件onLayout方法
    android自定义控件onMeasure方法
    activity的四种启动模式详细分析
    android屏幕适配的全攻略2--支持手机各种屏幕密度dpi
    android屏幕适配的全攻略3-动态获取手机屏幕宽高及动态设置控件宽高
    DIV滚动条
    .NET面试题6
    .NET面试题5
    .NET面试题4
    .NET面试题2
  • 原文地址:https://www.cnblogs.com/Jawen/p/10872587.html
Copyright © 2011-2022 走看看