题解 | #数组中只出现一次的数(其它数出现k次)#
数组中只出现一次的数(其它数出现k次)
http://www.nowcoder.com/practice/5d3d74c3bf7f4e368e03096bb8857871
描述
给定一个长度为 的整型数组 和一个整数 。
已知 中只有 1 个数出现一次,其他的数都出现 次。
请返回只出现了 1 次的数。
数据范围:
1 \le n \le 2*10^51≤n≤2∗105
1 \lt k \lt 1001<k<100
-2*10^9 \le arr[i] \le 2*10^9−2∗109≤arr[i]≤2∗109
1 \lt k \lt 1001<k<100
-2*10^9 \le arr[i] \le 2*10^9−2∗109≤arr[i]≤2∗109
复杂度要求:
时间
空间
适合新手的方法:将数组由小到大排序,若某一元素不等于前一个也不等于后一个,则跳出循环返回该元素
class Solution { public: int foundOnceNumber(vector<int>& arr, int k) { vector<int> temp; sort(arr.begin(),arr.end()); temp=vector<int>{arr.begin(),arr.end()}; for(int i=0;i<temp.size();i++) if(temp[i]!=temp[i+1]&&temp[i]!=temp[i-1]) return temp[i]; return 0; } };