首页 > 代码库 > Single Number II
Single Number II
Given an array of integers, every element appears three times except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
C++代码实现:
#include<iostream>#include<map>using namespace std;class Solution{public: int singleNumber(int A[],int n) { multimap<int,int> mp; int i; for(i=0;i<n;i++) { mp.insert({A[i],i}); } auto map_it=mp.begin(); while(map_it!=mp.end()) { auto fst=map_it; auto snd=map_it; fst++; snd++; snd++; if((fst)==mp.end()||snd==mp.end()) return (map_it)->first; if(map_it->first!=(fst)->first||map_it->first!=snd->first) break; map_it++; map_it++; map_it++; } return map_it->first; }};int main(){ Solution s; int arr[]={2,4,2,4,2,4,5,5}; cout<<s.singleNumber(arr,8)<<endl;}
Single Number II
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。