class Solution {
public:
int maximumGap(vector<int>& nums) {
//基数排序
if(nums.size()<2){
return 0;
}
int max=nums[0];
for(int i=1;i<nums.size();i++){
if(max<nums[i]){
max=nums[i];
}
}
int radix=1;
vector<int> tmp(nums.size());
while(max>0){
// int bucket[10]={0}
vector<int> bucket(10,0);
for(int i=0;i<nums.size();i++){
bucket[nums[i]/radix%10]+=1;
}
for(int i=1;i<bucket.size();i++){
bucket[i]+=bucket[i-1];
}
for(int i=tmp.size()-1;i>=0;i--){
tmp[bucket[nums[i]/radix%10]-1]=nums[i];
bucket[nums[i]/radix%10]-=1;
}
for(int i=0;i<nums.size();i++){
nums[i]=tmp[i];
}
max/=10;
radix*=10;
}
int maxp=0;
for(int i=0;i<nums.size()-1;i++){
int j=abs(nums[i+1]-nums[i]);
if(j>maxp)
{
maxp=j;
}
}
return maxp;
}
};
LEETCODE 164. 最大间距
最新推荐文章于 2024-07-25 19:34:38 发布