落单的数II

来源:互联网 发布:mac word 全选 编辑:程序博客网 时间:2024/06/05 19:01
给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。
样例

给出 [1,1,2,3,3,3,2,2,4,1] ,返回 4

import java.util.Scanner;/** * 给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。样例给出 [1,1,2,3,3,3,2,2,4,1] ,返回 4 * @author Dell * */public class Test83 {     public static int singleNumberII(int[] A)     {            int result=0;     for(int i=0;i<32;i++)     {       int count=0;       for(int j=0;j<A.length;j++)       {       count=count+((A[j]>>i)&1);              }       if(count%3==1)       {       result=result|(1<<i);        }          }          return result;     }public static void main(String[] args) {   Scanner sc=new Scanner(System.in);   int n=sc.nextInt();   int[] a=new int[n];   for(int i=0;i<a.length;i++)   {   a[i]=sc.nextInt();   }        System.out.println(singleNumberII(a));}}