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.
Credits:
Special thanks to @porker2008 for adding this problem and creating all test cases.
public class Solution {
public int maximumGap(int[] num) {
if(num.length < 2){
return 0;
}
List<Integer> list = new ArrayList<Integer>();
for(int i = 0 ; i < num.length; i ++){
list.add(num[i]);
}
Collections.sort(list);
int max=0;
for(int i = 1; i < list.size(); i ++ ){
max = (list.get(i) - list.get(i-1) > max)?(list.get(i) - list.get(i-1)):max;
}
return max;
}
}
1、集合掌握的不好,
2、没有追求更高效的算法
3、丢人现眼了