題目描述
給定乙個陣列 $a$,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。 如:$\$,找出 $7$。 你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦~
輸入第一行輸入乙個數 $n(1 \leq n \leq 500)$,代表陣列的長度。 接下來一行輸入 $n$ 個 int 範圍內($-2147483648\ldots 2147483647$)的整數,表示陣列 $a$。保證輸入的陣列合法。
輸出輸出乙個整數,表示陣列中只出現一次的數。
樣例輸入
4樣例輸出0 0 0 5
5分析:map計數~沒錯,就這麼簡單,什麼異或運算不存在的
#include #includeview code#include
#include
#include
#include
#include
#define range(i,a,b) for(int i=a;i<=b;++i)
#define rerange(i,a,b) for(int i=a;i>=b;--i)
#define ll long long
#define fill(arr,tmp) memset(arr,tmp,sizeof(arr))
using
namespace
std;
mapmap;
intn,tmp;
void
init()
}void
solve()
}int
main()
單獨的數字
解法一 class solution res sum 3 return res 還有一種解法,思路很相似,用3個整數來表示int的各位的出現次數情況,one表示出現了1次,two表示出現了2次。當出現3次的時候該位清零。最後答案就是one的值。ones代表第ith 位只出現一次的掩碼變數 twos代...
單獨的數字 python
給定乙個陣列 aa,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。如 找出 77。你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦 第一行輸入乙個數 n 1 leq n leq 500 n 1 n 500 代表陣列的長度。接下來一行輸入 nn 個 int 範圍內 214748...
單獨的數字 位運算
時間限制 1000ms 記憶體限制 65536k 給定乙個陣列 a 除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。如 找出 7 你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦 第一行輸入乙個數 n 1 n 5 00 代表陣列的長度。接下來一行輸入 n 個 int 範圍內 2...