zoukankan      html  css  js  c++  java
  • 数组中重复的数字

    #include <iostream>
    using namespace std;
    
    bool dup1(int *a,int n,int *dup)
    {
        if(a==NULL||n<=0)
            return false;
        for(int i=0;i<n;i++)
        {
            if(a[i]<0||a[i]>=n)
                return false;
        }
        for(int i=0;i<n;i++)
        {
            while(a[i]!=i)
            {
                if(a[i]==a[a[i]])
                {
                    *dup=a[i];
                    return true;
                }
                swap(a[i],a[a[i]]);
            }
        }
        return false;
    }
    
    bool dup2(int *a,int n,int *dup)
    {
        if(a==NULL||n<=0)
            return false;
        for(int i=0;i<n;i++)
        {
            if(a[i]<0||a[i]>=n)
                return false;
        }
        int hashtable[n];
        for(int i=0;i<n;i++)
            hashtable[i]=0;
        for(int i=0;i<n;i++)
        {
            hashtable[a[i]]++;
            if(hashtable[a[i]]==2)
            {
                *dup=a[i];
                return true;
            }
        }
        return false;
    }
    
    int main()
    {
        int a[]={2,3,1,0,2,5,3};
        int i=0,*p=&i;
        cout<<dup1(a,7,p)<<endl;
        cout<<*p;
        return 0;
    }
  • 相关阅读:
    A
    Hdu 1856(离散化+并查集)More is better
    Hat’s Words hdu-1247
    K
    I
    L
    F
    M
    Javascript 编码规范
    Chrome开发者工具之JavaScript内存分析
  • 原文地址:https://www.cnblogs.com/home123/p/7445949.html
Copyright © 2011-2022 走看看