function countSort(nums: number[], k: number = -1) { if (k == -1) { k = nums.reduce((acc, value) => { return acc < value ? value : acc }, 0) } const counts = Array(k + 1).fill(0) for (let i = 0; i < nums.length; i++) { const value = nums[i] counts[value]++ } const results = Array(nums.length) let idx = 0 for (let i = 0; i <= k; i++) { const count = counts[i] nums.fill(i, idx, idx + count) idx += count } return nums }