【leetcode】期望个数统计

int qusort(int* s,int start,int end)    //自定义函数 qusort()
{
    int i,j;    //定义变量为基本整型
    i= start;    //将每组首个元素赋给i
    j = end;    //将每组末尾元素赋给j
    int k=s[start];    //设置基准值
    while(i < j)
    {
        while(i < j && k < s[j]) // 从右向左找第一个小于k的数
            j--;    //位置左移
        if(i < j)
        {
            s[i] = s[j];    //将s[j]放到s[i]的位置上
            i++;    //位置右移
        }
        while(i < j && s[i] <= k) // 从左向右找第一个大于等于k的数
            i++;    //位置左移
        if(i < j)
        {
            s[j] = s[i];    //将大于基准值的s[j]放到s[i]位置
            j--;    //位置左移
        }
    }    
    s[i] = k;    //将基准值放入指定位置
    if (start < i)
        qusort(s,start,j-1);    //对分割出的部分递归调用qusort()函数
    if (i < end)
        qusort(s,j+1,end);
    return 0;
}
int expectNumber(int* scores, int scoresSize){
    
    qusort(scores,0,scoresSize-1);
    int count = scoresSize;
    for (int i=0; i<scoresSize-1; i++)
    {
        if (scores[i] == scores[i+1])
            count--;
    }                                                                                                                                                                                                                                                        
    return count;
}

 

posted @ 2020-08-15 18:18  温暖了寂寞  阅读(226)  评论(0编辑  收藏  举报