问题:
来源:leetcode
分析:
总时间肯定取决于个数最多的,
先排好个数最多的,因为它是确定的:
剩下的按照最多数位置+I的方法,我怎么排也是满足条件的。
然后统计最多个数的任务有多少种,决定最后需要加多少个位置。
然而这样是很不全面的,仍需要考虑按照最大个数给的,其他的能否放下。
自己这一点没想通,想想,为什么要留这么大,因为最小要留着么大,不够我再加呗!!!
代码:
总结:
基础qsort再巩固:
qsort(void *_数组,size_t _NumOfElements个数,size_t _SizeOfElements元素大小,函数);
从小到大:
int comp(const void*a,const void*b)
{
return *(int*)a-*(int*)b;
}
从大到小:
return *(int *)b - *(int *)a;