zoukankan      html  css  js  c++  java
  • leetcode 137. Single Number II ----- java

    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?

    求出数组中只出现一次的数,剩下的都是三次。

    /**
     * Created by wangzunwen on 2016/11/14.
     */
    public class singleNumber2 {
    
        public int singleNumber(int[] nums) {
    
    
            int result = 0;
    
            for( int i = 0;i<32;i++){
    
                int num = 0;
                for( int j = 0;j<nums.length;j++){
                    if(( nums[j] >> i &1) == 1 ){
                        num++;
                    } 
    
    
                }
                num%=3;
                result+=(num<<i);
            }
            return result;
    
    
        }
    }
    public class Solution {
        public int singleNumber(int[] A) {
            int n = A.length;
            int one=0, two=0, three=0;  
            for(int i=0; i<n; i++){  
                two |= one&A[i];  
                one^=A[i];  
                //cout<<one<<endl;  
                three=one&two;  
                one&= ~three;  
                two&= ~three;  
            }  
            return one; 
    
        }
    }
  • 相关阅读:
    Codeforces_739_B
    Codeforces_732_D
    D
    C
    E
    商汤AI园区的n个路口(中等)
    D. The Fair Nut and the Best Path
    HDU6446
    分解质因数(线性筛)
    D. Extra Element
  • 原文地址:https://www.cnblogs.com/xiaoba1203/p/6064615.html
Copyright © 2011-2022 走看看