数组中只出现一次的数字

数组中只出现一次的数字

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();
    }
};
全部评论

相关推荐

优秀的大熊猫在okr...:多益:此贼,必有同谋,按律,该当连坐!
你不能接受的企业文化有哪...
点赞 评论 收藏
分享
2025-12-26 10:52
河北传媒学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务