給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。
說明:你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?
示例 1:
輸入: [2,2,1]
輸出: 1
示例 2:
輸入: [4,1,2,1,2]
輸出: 4
一般這種不使用額外空間,時間複雜度低的,用按位運算比較多
異或public class singlenumber {
public int singlenumber(int nums) {
int res = nums[0];
for(int i=1;i有1到10000之間的數,少了乙個,如何能最快的找到缺失的數字
按照異或的特性,可知,我先把1到10000做異或,取得的值與給定的集合元素做異或,則異或結果,即為所缺失的數字。
如:1^ 2 ^3 ^ 4 ^ 5 ^ 6 ^ 7 ^ 8 ^ 9 =x
1^ 2 ^3 ^ 4 ^ 5 ^ 6 ^ 8 ^ 9 =y
x ^ y = 7
因為相當於:
1^ 1^ 2 ^ 2 ^3 ^3 ^ 4 ^ 4 ^ 5 ^ 5 ^ 6 ^ 6 ^7^ 8 ^ 8 ^ 9 ^ 9 = 7
leetcode 136 只出現一次的數字
給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,1 輸出 1示例 2 輸入 4,1,2,1,2 輸出 4 class solution return r...
LeetCode 136 只出現一次的數字
136.只出現一次的數字 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例1 輸入 2,2,1 輸出 1 示例2 輸入 4,1,2,1,2 輸出 4 使用集合中沒有重複元素...
Leetcode 136 只出現一次的數字
定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,1 輸出 1 示例 2 輸入 4,1,2,1,2 輸出 4 乙個不符合題目要求的解法。採用collecti...