思路:开始没看见下面的说明,直接一sort完事了;后来看见后无疑就想到了基数排序,只有计数排序和基数排序能在最坏的情况下达到线性时间复杂度,而基数排序无疑不满足线性空间复杂度,所以这里选择基数排序;
static bool cmp(int a, int b)
{
return a < b;
}
int maximumGap(vector<int> &nums)
{
int len = nums.size();
if (len < 2)
return 0;
sort(nums.begin(), nums.end(), cmp);
int res = 0;
for (int i = 1; i < len; i++)
{
int temp = nums[i] - nums[i - 1];
if (temp > res)
res = temp;
}
return res;
}
基数排序等十大排序算法实现可查看我的这篇文章:
Algorithm:十大经典排序算法C++实现及总结