單獨的數字

2022-04-10 08:57:34 字數 883 閱讀 4541

題目描述

給定乙個陣列 $a$,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。 如:$\$,找出 $7$。 你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦~

輸入第一行輸入乙個數 $n(1 \leq n \leq 500)$,代表陣列的長度。 接下來一行輸入 $n$ 個 int 範圍內($-2147483648\ldots 2147483647$)的整數,表示陣列 $a$。保證輸入的陣列合法。

輸出輸出乙個整數,表示陣列中只出現一次的數。

樣例輸入

4

0 0 0 5

樣例輸出
5

分析:map計數~沒錯,就這麼簡單,什麼異或運算不存在的

#include #include 

#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()

view code

單獨的數字

解法一 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...