leetcode 561. Array Partition I
Given an array of 2n integers, your task is to group these integers inton pairs of integer, say (a1, b1), (a2, b2), ..., (an, bn) which makes sum of min(ai, bi) for all i from 1 to n as large as possible.
Example 1:
Input: [1,4,3,2] Output: 4 Explanation: n is 2, and the maximum sum of pairs is 4.
Note:
- n is a positive integer, which is in the range of [1, 10000].
- All the integers in the array will be in the range of [-10000, 10000].
AC:
int compare(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int arrayPairSum(int* nums, int numsSize) {
qsort(nums,numsSize,sizeof(nums[0]),compare);
int result =0;
for(int i=0;i<numsSize;i+=2)
{
result+=nums[i];
}
return result;
}
qsort(nums,numsSize,sizeof(nums[0]),compare);
int result =0;
for(int i=0;i<numsSize;i+=2)
{
result+=nums[i];
}
return result;
}
tips:
此处qsort函数的调用无需写头文件#include<stdlib.h>,只用写比较函数即可。