只出現一次的數字_LeetCode
阿新 • • 發佈:2018-12-31
package day02; /** * 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? * @author JZWen * * * 思路: 什麼是線性時間複雜度,不使用額外的空間,定義一個變數算不算? * * 線性複雜度: o(n) * * csdn上看到了一種特別好的演算法,就是用異或處理。 其餘元素之出現兩次(偶數次) 找出那個出現一次(奇數次) * * */ public class Demo01 { public static int fun(int nums[]) { int num = 0; for(int i=0; i<nums.length; i++) { num ^= nums[i]; } return num; } public static void main(String[] args) { // TODO Auto-generated method stub int nums[]= {4,1,2,1,2}; System.out.println(fun(nums)); } }
注意這個應用的場景和方法,有很多限制條件的。
自己需要思考一下 ,如果重複的資料不是偶數個怎麼辦?