zoukankan      html  css  js  c++  java
  • 数组中只出现一次的数字

    题目描述

    一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
     
    解题:数组快排之后扫描一遍就出结果了。
    时间复杂度:n+nlogn
    c++代码如下:
    class Solution {
    public:
        void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
        sort(data.begin(),data.end());
        int f1=0;
            for(int i=0;i<data.size();i++)
            {
            if(i==0&&data[i]!=data[i+1])
            {
                 num1[0]=data[i];f1=1;   
            }
             else if(i>0&&i<=data.size()-2){
                 if(data[i]!=data[i+1]&&data[i]!=data[i-1])
                 {
                      if(f1==1)
                      {
                          num2[0]=data[i];break;
                     }
                     else
                     {
                         num1[0]=data[i];f1=1;    
                     }
                     
                 }
             }
            else if(i==data.size()-1&&data[i]!=data[i-1])  num2[0]=data[i];
        }    
        }
    };
    不一样的烟火
  • 相关阅读:
    小故事
    设计模式
    git分支
    git简单操作
    ab命令压力测试
    libcheck ARM交叉编译
    libxml2 ARM 交叉编译
    I.MX6 安装LTIB
    为ARM编译Glib
    QT 4.8 中文显示问题
  • 原文地址:https://www.cnblogs.com/cstdio1/p/11239970.html
Copyright © 2011-2022 走看看