function radixSort(nums: number[]): void {
const m = Math.max(...nums);
for (let exp = 1; exp <= m; exp *= 10) {
countingSortDigit(nums, exp);
}
}
function countingSortDigit(nums: number[], exp: number): void {
const counter = new Array(10).fill(0);
for (const num of nums) counter[Math.floor(num / exp) % 10]++;
for (let i = 1; i < 10; i++) counter[i] += counter[i - 1];
const res = new Array(nums.length).fill(0);
for (let i = nums.length - 1; i >= 0; i--) {
const d = Math.floor(nums[i] / exp) % 10;
res[--counter[d]] = nums[i];
}
for (let i = 0; i < nums.length; i++) nums[i] = res[i];
}