给定一个INT数组,用什么方法可以判断该数组中的每个值都各不相同!???如 int *pint1 = new int[4];
pint1[0] = 1;pint[1] = 2;pint[2] = 3;pint[3] = 4;
如果该函数为IsDiffItem(pint, 4)的话,则会返回true;
如果
pint1[0] = 1;pint[1] = 2;pint[2] = 3;pint[3] = 1;
则将返回false!请大家用最简单的方法来实现IsDiffItem!!!!!
多谢!
注意,传给IsDiffItem的将是一个变长数组!

解决方案 »

  1.   

    挨个依次比较吧
    bool IsDiffItem(int pint[], int count)
    {
        for (int i=0; i<count; i++)
        {
            for (int j=i+1; j++)
            {
                if (pint[i] == pint[j]) return false;
            }
        }    return true;
    }
      

  2.   

    上面笔误
    for (int j=i+1; j<count; j++)
      

  3.   

    全部累加起来取平均值,然后遍历一次数组。如果全部相等的话,平均值应该和每个元素都是相等的。一旦发现不同,即可返回false。
      

  4.   

    Semigod() 说的对,
    把判断作到排序中! 这样最差情况下复杂度才和排序一样.
      

  5.   

    codewarrior(会思考的草)全部累加起来取平均值,然后遍历一次数组。如果全部相等的话,平均值应该和每个元素都是相等的。一旦发现不同,即可返回false。
    ======================你这种方法应该是判断他们全部相等吧!我是想怎样判断它们各不相等!