Sort the Jumbled Numbers
MediumArraySorting
Solution
export function sortJumbled(mapping: number[], nums: number[]): number[] {
const mapped = nums.map((num, i) => [i, convert(num, mapping)]);
mapped.sort((a, b) => a[1] - b[1]);
return mapped.map(([i]) => nums[i]);
}
function convert(num: number, mapping: number[]): number {
if (num < 10) {
return mapping[num];
}
let result = 0;
let raise = 1;
while (0 < num) {
result += mapping[num % 10] * raise;
num = Math.floor(num / 10);
raise *= 10;
}
return result;
}
Complexity
- Time:
O(NlogN)
- Space:
O(N)