<p>Given an integer array <code>nums</code>, return <em>the maximum difference between two successive elements in its sorted form</em>. If the array contains less than two elements, return <code>0</code>.</p>

<p>You must write an algorithm that runs in linear time and uses linear extra space.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>

<pre>
<strong>Input:</strong> nums = [3,6,9,1]
<strong>Output:</strong> 3
<strong>Explanation:</strong> The sorted form of the array is [1,3,6,9], either (3,6) or (6,9) has the maximum difference 3.
</pre>

<p><strong class="example">Example 2:</strong></p>

<pre>
<strong>Input:</strong> nums = [10]
<strong>Output:</strong> 0
<strong>Explanation:</strong> The array contains less than 2 elements, therefore return 0.
</pre>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>1 &lt;= nums.length &lt;= 10<sup>5</sup></code></li>
	<li><code>0 &lt;= nums[i] &lt;= 10<sup>9</sup></code></li>
</ul>

class Solution:
    def maximumGap(self, nums: List[int]) -> int:

        if len(nums)<2:
            return 0
            
        base=10
        max_num=max(nums)
        max_str=str(max_num)
        n=len(max_str)
  
        str_nums=[]
        for num in nums:
            str_num=str(num)
            rem=n-len(str_num)
            if  rem>0 and rem<n:
                new_str="0"*(rem)+str_num
            else:
                new_str=str_num
            str_nums.append(new_str)

        bukets=[[] for _ in range(base)]        
        m=n-1
        for _ in range(n):

            for num in str_nums: 
                if m>=0:
                    radix=num[m]
                    buket=bukets[int(radix)]
                    buket.append(num)

            m=m-1
            str_nums=[]
            for i, b in enumerate(bukets):
                for v in b:
                    str_nums.append(v)
                bukets[i]=[]

        ans=[int(n) for n in str_nums]
        max_diff=float("-inf")
        for i in range(1, len(ans)):
            max_diff=max(max_diff, ans[i]-ans[i-1])

        return max_diff




        
34996