64,081
社区成员
发帖
与我相关
我的任务
分享
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-2]*nums[numsSize-1]-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-1;i >=2;i--){
if(nums[i-2]+nums[i-1]>nums[i]){
return nums[i-2]+nums[i-1]+nums[i];
}
}
return 0;
}
int cmp(const void *a,const void *b){
return *(int *)a-*(int *)b;
}
int arrayPairSum(int* nums, int numsSize){
int sum=0;
qsort(nums,numsSize,sizeof(int),cmp);
for(int i = 0;i < numsSize; i++){
if(i%2==0){
sum += nums[i];
}
}
return sum;
}
int cmp(const void *a,const void *b){
return *(int *)a-*(int *)b;
}
int numRescueBoats(int* people, int peopleSize, int limit){
int ans = 0;
int l = 0;int r = peopleSize - 1;
qsort(people,peopleSize,sizeof(int),cmp);
while(l<=r){
if(l == r){
ans++;
break;
}
else if(people[l]+people[r]>limit){
ans++,r--;
}
else{
ans++,r--,l++;
}
}
return ans;
}
int cmp(const void *a,const void *b){
return *(int *)a-*(int *)b;
}
void wiggleSort(int* nums, int numsSize){
int r = numsSize - 1;
int *ret = (int *)malloc(sizeof(int)*numsSize);
for(int i = 0 ; i < numsSize; i++){
ret[i] = nums[i];
}
qsort(ret,numsSize,sizeof(int),cmp);
for(int i = 1; i < numsSize; i += 2){
nums[i] = ret[r--];
}
for(int i = 0;i < numsSize; i += 2){
nums[i] = ret[r--];
}
}
int cmp(const void *a,const void *b){
return *(int *)a-*(int *)b;
}
int findContentChildren(int* g, int gSize, int* s, int sSize){
int ans = 0;int l = gSize - 1;int n = sSize - 1;
qsort(g,gSize,sizeof(int),cmp);
qsort(s,sSize,sizeof(int),cmp);
while(l>=0&&n>=0){
if(s[n]>=g[l]){
n--,l--,ans++;
}
else{
l--;
}
}
return ans;
}
int minOperations(int* nums, int numsSize){
int i;
int ans = 0;
for(i = 1; i < numsSize; ++i) {
if(nums[i-1] >= nums[i]) {
ans += nums[i-1] - nums[i]+1;
nums[i] = nums[i-1] + 1;
}
}
return ans;
}
int minIncrementForUnique(int* nums, int numsSize){
int res = 0;
int pos[400001];
memset(pos, -1, sizeof(int) * 400001);
for (int i = 0; i < numsSize; ++i) {
int a = nums[i];
int b = findPos(a, pos);
res += b-a;
}
return res;
}
int findPos(int a, int pos[])
{
int b = pos[a];
if (b == -1)
{
pos[a] = a;
return a;
}
b = findPos(b+1, pos);
pos[a] = b;
return b;
}
int cmp(const void *a, const void *b) {
return *(int *)a - *(int *)b;
}
int triangleNumber(int* nums, int numsSize){
int i, j, k;
int ans = 0;
qsort(nums, numsSize, sizeof(int), cmp);
for(i = 0; i < numsSize; ++i) {
j = i + 1;
k = j + 1;
while(j < numsSize) {
while(k < numsSize) {
if(nums[i] + nums[j] <= nums[k]) {
break;
}
++k;
}
ans += k-j-1;
++j;
if(k == j) k++;
}
}
return ans;
}