1,164. 最大间距 - 力扣(LeetCode) (leetcode-cn.com)
int cmp(const void*e1,const void*e2)
{
if(*(int*)e1>=*(int*)e2)
return 1;
else
return 0;
}
int maximumGap(int* nums, int numsSize)
{
if(numsSize<2)
return 0;
qsort(nums,numsSize,sizeof(int),cmp);
int max=nums[1]-nums[0];
int i=0;
for(i=1;i<numsSize-1;i++)
{
if(nums[i+1]-nums[i]>max)
max=nums[i+1]-nums[i];
}
return max;
}
2,912. 排序数组 - 力扣(LeetCode) (leetcode-cn.com)
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int cmp_int(const void*e1,const void*e2)
{
if(*(int*)e1>=*(int*)e2)
return 1;
else
return 0;
}
int* sortArray(int* nums, int numsSize, int* returnSize)
{
qsort(nums,numsSize,sizeof(int),cmp_int);
*returnSize=numsSize;
return nums;
}
3,217. 存在重复元素 - 力扣(LeetCode) (leetcode-cn.com)
int cmp(const void*e1,const void*e2)
{
if(*(int*)e1>=*(int*)e2)
return 1;
else
return 0;
}
bool containsDuplicate(int* nums, int numsSize)
{
if(numsSize==1)
return false;
qsort(nums,numsSize,sizeof(int),cmp);
int i=0;
for(i=0;i<numsSize-1;i++)
{
if(nums[i]==nums[i+1])
return true;
}
return false;
}
4,169. 多数元素 - 力扣(LeetCode) (leetcode-cn.com)
int cmp(const void*e1,const void*e2)
{
if(*(int*)e1>=*(int*)e2)
return 1;
else
return 0;
}
int majorityElement(int* nums, int numsSize)
{
if(numsSize==1)
return nums[0];
qsort(nums,numsSize,sizeof(int),cmp);
printf("%d",nums[0]);
int i=0;
int max=1;
for(i=1;i<numsSize;i++)
{
if(nums[i]!=nums[i-1])
max=1;
if(nums[i]==nums[i-1])
max++;
if(max>numsSize/2)
{
return nums[i];
}
}
return 0;
}
5,面试题 10.01. 合并排序的数组 - 力扣(LeetCode) (leetcode-cn.com)
int cmp(void*e1,void*e2)
{
if(*(int*)e1>=*(int*)e2)
return 1;
else
return 0;
}
void merge(int* A, int ASize, int m, int* B, int BSize, int n)
{
int i=m;
int j=0;
for(;i<ASize,j<n;i++,j++)
{
A[i]=B[j];
}
qsort(A,m+n,sizeof(int),cmp);
}
这些LeetCode题目涉及到了几种常见的排序算法(如快速排序)及其应用。第一题中找到数组的最大间隔,第二题实现了整数数组的排序,第三题检查数组是否存在重复元素,第四题找出数组中的多数元素,第五题则展示了如何合并两个已排序的数组。通过这些题目,我们可以看到排序算法在解决实际问题中的重要作用。
1663

被折叠的 条评论
为什么被折叠?



