【leetcode】期望個數統計
阿新 • • 發佈:2020-08-15
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;
}