diff --git a/solution/2100-2199/2191.Sort the Jumbled Numbers/README.md b/solution/2100-2199/2191.Sort the Jumbled Numbers/README.md index b54f88cacd5ec..440e1badfa36a 100644 --- a/solution/2100-2199/2191.Sort the Jumbled Numbers/README.md +++ b/solution/2100-2199/2191.Sort the Jumbled Numbers/README.md @@ -224,6 +224,34 @@ function sortJumbled(mapping: number[], nums: number[]): number[] { } ``` +#### JavaScript + +```js +/** + * @param {number[]} mapping + * @param {number[]} nums + * @return {number[]} + */ +var sortJumbled = function (mapping, nums) { + const n = nums.length; + const f = x => { + if (x === 0) { + return mapping[0]; + } + let y = 0; + for (let k = 1; x; x = (x / 10) | 0) { + const v = mapping[x % 10]; + y += v * k; + k *= 10; + } + return y; + }; + const arr = nums.map((x, i) => [f(x), i]); + arr.sort((a, b) => (a[0] === b[0] ? a[1] - b[1] : a[0] - b[0])); + return arr.map(x => nums[x[1]]); +}; +``` + #### Rust ```rust diff --git a/solution/2100-2199/2191.Sort the Jumbled Numbers/README_EN.md b/solution/2100-2199/2191.Sort the Jumbled Numbers/README_EN.md index c60368d7e450e..0a4834b37e805 100644 --- a/solution/2100-2199/2191.Sort the Jumbled Numbers/README_EN.md +++ b/solution/2100-2199/2191.Sort the Jumbled Numbers/README_EN.md @@ -38,7 +38,7 @@ tags:
Input: mapping = [8,9,4,0,2,1,3,5,7,6], nums = [991,338,38] Output: [338,38,991] -Explanation: +Explanation: Map the number 991 as follows: 1. mapping[9] = 6, so all occurrences of the digit 9 will become 6. 2. mapping[1] = 9, so all occurrences of the digit 1 will become 9. @@ -222,6 +222,34 @@ function sortJumbled(mapping: number[], nums: number[]): number[] { } ``` +#### JavaScript + +```js +/** + * @param {number[]} mapping + * @param {number[]} nums + * @return {number[]} + */ +var sortJumbled = function (mapping, nums) { + const n = nums.length; + const f = x => { + if (x === 0) { + return mapping[0]; + } + let y = 0; + for (let k = 1; x; x = (x / 10) | 0) { + const v = mapping[x % 10]; + y += v * k; + k *= 10; + } + return y; + }; + const arr = nums.map((x, i) => [f(x), i]); + arr.sort((a, b) => (a[0] === b[0] ? a[1] - b[1] : a[0] - b[0])); + return arr.map(x => nums[x[1]]); +}; +``` + #### Rust ```rust diff --git a/solution/2100-2199/2191.Sort the Jumbled Numbers/Solution.js b/solution/2100-2199/2191.Sort the Jumbled Numbers/Solution.js new file mode 100644 index 0000000000000..180d16e2936ec --- /dev/null +++ b/solution/2100-2199/2191.Sort the Jumbled Numbers/Solution.js @@ -0,0 +1,23 @@ +/** + * @param {number[]} mapping + * @param {number[]} nums + * @return {number[]} + */ +var sortJumbled = function (mapping, nums) { + const n = nums.length; + const f = x => { + if (x === 0) { + return mapping[0]; + } + let y = 0; + for (let k = 1; x; x = (x / 10) | 0) { + const v = mapping[x % 10]; + y += v * k; + k *= 10; + } + return y; + }; + const arr = nums.map((x, i) => [f(x), i]); + arr.sort((a, b) => (a[0] === b[0] ? a[1] - b[1] : a[0] - b[0])); + return arr.map(x => nums[x[1]]); +};