有 N 位扣友参加了微软与力扣举办了「以扣会友」线下活动。主办方提供了 2*N 道题目,整型数组 questions 中每个数字对应了每道题目所涉及的知识点类型。 若每位扣友选择不同的一题,请返回被选的 N 道题目至少包含多少种知识点类型。
void shell(int a[],int n)//希尔排序 从大到小
{
int d = n / 2;
while(d > 0)
{
for(int i = d + 1;i < n;i ++)
{
int x = a[i],j = i - d;
while(x > a[j] && j > 0)
{
a[j + d] = a[j];
j = j - d;
}
a[j + d] = x;
}
d = d / 2;
}
}
int halfQuestions(int* questions, int questionsSize){
int a[11];
memset(a,0,sizeof(a));
for(int i = 0;i < questionsSize;i ++)
{
a[*(questions + i)] ++;
}
shell(a,11);//希尔排序 从大到小
int sum = a[1],count = 0;
for(int j = 2;j < 11;j ++)
{
count ++;
if(sum >= questionsSize / 2)
{
break;
}
sum += a[j];
}
return count;
}
第一个示例可以通过,
但第二个示例 始终报错 有大佬知道原因吗?
但第二个示例在dev上可以通过
?
|