Given an unsorted array, find the maximum difference between the successive elements in its sorted form.
Try to solve it in linear time/space.
Return 0 if the array contains less than 2 elements.
You may assume all elements in the array are non-negative integers and fit in the 32-bit signed integer range.
【思路】先排序,再倒序求gap。
class Solution {
public:
int maximumGap(vector<int>& nums) {
if(nums.size()<=1) return 0;
sort(nums.begin(), nums.end());
int gap = 0;
for(int i = nums.size()-1; i>=1; i--)
{
int tmp = nums[i] - nums[i-1];
if(tmp >= gap)
gap = tmp;
}
return gap;
}
};