File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ int maximumGap (vector<int >& nums) {
4
+ int len = nums.size ();
5
+ if (len < 2 ) return 0 ;
6
+ int maxNumber = 10 ;
7
+ int maxDigit = 1 ;
8
+ for (int num : nums) {
9
+ while (num >= maxNumber) {
10
+ maxNumber *= 10 ;
11
+ ++maxDigit;
12
+ }
13
+ }
14
+
15
+ for (int i = 1 ; i < maxNumber; i*=10 ) {
16
+ vector<int > tmp (nums.begin (), nums.end ());
17
+ vector<int > bucket (10 , 0 );
18
+ for (int num : nums) {
19
+ ++bucket[(num/i) % 10 ];
20
+ }
21
+ for (int j = 1 ; j < 10 ; ++j) {
22
+ bucket[j] += bucket[j-1 ];
23
+ }
24
+ for (int j = len-1 ; j >= 0 ; --j) {
25
+ nums[--bucket[(tmp[j]/i)%10 ]] = tmp[j];
26
+ }
27
+ }
28
+
29
+ int ans = 0 ;
30
+ for (int i = 1 ; i < len; ++i) {
31
+ ans = max (abs (nums[i]-nums[i-1 ]), ans);
32
+ }
33
+ return ans;
34
+ }
35
+ };
You can’t perform that action at this time.
0 commit comments