数组中只出现一次的数字
数组中只出现一次的数字
http://www.nowcoder.com/questionTerminal/e02fdb54d7524710a7d664d082bb7811
用栈的思想也可以通过,先进行一次由小到大的排序,之后一次入栈。
准备入栈元素与栈顶元素不相同--入栈;
准备入栈元素与栈顶元素相同--栈顶元素出栈;
这样正好可以将两两的相同元素全部排出栈.
class Solution {
public:
void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
vector<int> res;
if(data.size()==0)
return ;
sort(data.begin(),data.end());
stack<int> ss;
for(int i=0;i<data.size();i++)
{
if(ss.empty())
{
ss.push(data[i]);
}
else if(ss.top()!=data[i])
ss.push(data[i]);
else if(ss.top()==data[i])
ss.pop();
}
*num1=ss.top();
ss.pop();
*num2=ss.top();
ss.pop();
}
};