2191. Sort the Jumbled Numbers

Medium
You are given a 0-indexed integer array mapping which represents the mapping rule of a shuffled decimal system. mapping[i] = j means digit i should be mapped to digit j in this system.
The mapped value of an integer is the new integer obtained by replacing each occurrence of digit i in the integer with mapping[i] for all 0 <= i <= 9.
You are also given another integer array nums. Return the array nums sorted in non-decreasing order based on the mapped values of its elements.
Notes:
  • Elements with the same mapped values should appear in the same relative order as in the input.
  • The elements of nums should only be sorted based on their mapped values and not be replaced by them.

解題

暴力解
Runtime: 633 ms, faster than 25%
Memory Usage: 8.2 MB, less than 100%
func sortJumbled(mapping []int, nums []int) []int {
sort.Slice(nums, func(i, j int) bool {
return change(mapping, nums[i]) < change(mapping, nums[j])
})
​
return nums
}
​
func change(mapping []int, num int) int {
if num < 10 { return mapping[num] }
​
res := 0
mul := 1
​
for num > 0 {
res += mapping[num % 10] * mul
mul *= 10
num /= 10
}
​
return res
}