64,075
社区成员
发帖
与我相关
我的任务
分享
int cmp(const void*a, const void*b)
{
return *(int*)a > *(int*)b;
}
int maxProductDifference(int* nums, int numsSize)
{
qsort(nums, numsSize, sizeof(int), cmp);
return nums[numsSize - 1] * nums[numsSize - 2] - nums[0] * nums[1];
}
int cmp(const void*a ,const void*b)
{
return *(int*)a > *(int*)b;
}
int largestPerimeter(int* nums, int numsSize)
{
qsort(nums, numsSize, sizeof(int), cmp);
for(int i = numsSize - 3; i >= 0; i--)
{
if(nums[i] + nums[i+1] > nums[i+2])
return nums[i] + nums[i+1] + nums[i+2];
}
return 0;
}
int cmp (const void*a, const void* b)
{
return *(int*)a > *(int*)b;
}
int arrayPairSum(int* nums, int numsSize)
{
int cnt = 0;
qsort(nums, numsSize, sizeof(int), cmp);
for(int i = 0; i < numsSize; i += 2)
{
cnt += nums[i];
}
return cnt;
}
int cmp(const void*a, const void* b)
{
return *(int*)a > *(int*)b;
}
void wiggleSort(int* nums, int numsSize)
{
int* tmp = (int*)malloc(sizeof(int) * numsSize);
for(int i = 0; i < numsSize; i++)
tmp[i] = nums[i];
qsort(tmp, numsSize, sizeof(int), cmp);
int ret = numsSize - 1;
for(int i = 1; i < numsSize; i += 2)
nums[i] = tmp[ret--];
for(int i = 0; i < numsSize; i += 2)
nums[i] = tmp[ret--];
}
int cmp(const void*a, const void*b)
{
return *(int*)a > *(int*)b;
}
int findContentChildren(int* g, int gSize, int* s, int sSize)
{
int max = 0;
int p1 = 0;
int p2 = 0;
qsort(g, gSize, sizeof(int), cmp);
qsort(s, sSize, sizeof(int), cmp);
while(p1 < gSize && p2 < sSize)
{
while(p2 < sSize && g[p1] > s[p2])
p2++;
if(p2 < sSize)//说明p2存在
{
max++;
p1++;
p2++;
}
}
return max;
}
int minOperations(int* nums, int numsSize)
{
int max = 0;
int base = nums[0] + 1;
for(int i = 1; i < numsSize; i++)
{
if(base > nums[i])
{
max += base - nums[i];
base++;
}
else
{
base = nums[i] + 1;
}
}
return max;
}
int cmp(const void*a, const void* b)
{
return *(int*)a > *(int*)b;
}
int triangleNumber(int* nums, int numsSize)
{
qsort(nums, numsSize, sizeof(int), cmp);
int ans = 0;
for(int i = 0; i < numsSize - 2; i++)
{
int k = i + 1;
for(int j = i + 1; j < numsSize - 1; j++)
{
while(k + 1 < numsSize && nums[k+1] < nums[i] + nums[j])
{
k++;
}
ans += k - j > 0? k - j: 0;
}
}
return ans;
}