java演算法題:只出現一次的數字
阿新 • • 發佈:2019-01-04
題目:
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。
說明:
你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?
示例 1:
輸入: [2,2,1]
輸出: 1
示例 2:
輸入: [4,1,2,1,2]
輸出: 4
程式碼:
class Solution { public int singleNumber(int[] nums) { //陣列排序 Arrays.sort(nums); int len = nums.length; int temp = 0; //當陣列長度為1的時候 if(len == 1) { return nums[0]; } //判斷左邊界 if(nums[0] != nums[1]){ return nums[0]; } 判斷右邊界 if(nums[len - 1] != nums[len - 2]){ return nums[len - 1]; } for(int i = 1; i < len - 1; i++) { 當nums[i]的左右相鄰位與其值不相等的時候返回值 if(nums[i - 1] != nums[i] && nums[i] != nums[i + 1]){ temp = nums[i]; } } return temp; } }