一个整型数组里除了两个数字之外,其他的数字都出现了两次
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                一个整型数组里除了两个数字之外,其他的数字都出现了两次
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                題目:
一個整型數(shù)組里除了兩個數(shù)字之外,其他的數(shù)字都出現(xiàn)了兩次
?
解答:
我們從頭到尾異或數(shù)組中的每個數(shù)字,那么最終的結(jié)果是兩個只出現(xiàn)一次數(shù)字的異或的結(jié)果,由于兩個數(shù)字不一樣,那么異或的結(jié)果肯定不為0,那么這個數(shù)字的二進制表示中至少有一位為1。
?
1 public class Solution { 2 public static void main(String[] args) { 3 int[] array = {2,4,3,6,3,2,5,5}; 4 findNumsAppearOnce(array); 5 } 6 7 private static void findNumsAppearOnce(int[] array){ 8 if(array == null) { 9 return; 10 } 11 12 int num = 0; 13 for(int i:array) { 14 num ^= i; 15 } 16 17 int index = findFirstBitIs1(num); 18 int number1 = 0; 19 int number2 = 0; 20 21 for(int i:array) { 22 if(isBit1(i, index)) { 23 number1 ^= i; 24 } else { 25 number2 ^= i; 26 } 27 } 28 29 System.out.println(number1); 30 System.out.println(number2); 31 } 32 33 private static int findFirstBitIs1(int num) { 34 int index = 0; 35 while((num&1) == 0) { 36 num = num >> 1; 37 index++; 38 } 39 40 return index; 41 } 42 }
?
轉(zhuǎn)載于:https://www.cnblogs.com/wylwyl/p/10384381.html
總結(jié)
以上是生活随笔為你收集整理的一个整型数组里除了两个数字之外,其他的数字都出现了两次的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: [BZOJ3337] ORZJRY I
 - 下一篇: 0x02 mysql 表格相关操作