mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-11 02:58:13 +08:00
49 lines
2.3 KiB
HTML
49 lines
2.3 KiB
HTML
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>mapping</code> ,它表示一个十进制数的映射规则,<code>mapping[i] = j</code> 表示这个规则下将数位 <code>i</code> 映射为数位 <code>j</code> 。</p>
|
||
|
||
<p>一个整数 <strong>映射后的值</strong> 为将原数字每一个数位 <code>i</code> (<code>0 <= i <= 9</code>)映射为 <code>mapping[i]</code> 。</p>
|
||
|
||
<p>另外给你一个整数数组 <code>nums</code> ,请你将数组<em> </em><code>nums</code> 中每个数按照它们映射后对应数字非递减顺序排序后返回。</p>
|
||
|
||
<p><strong>注意:</strong></p>
|
||
|
||
<ul>
|
||
<li>如果两个数字映射后对应的数字大小相同,则将它们按照输入中的 <strong>相对顺序</strong> 排序。</li>
|
||
<li><code>nums</code> 中的元素只有在排序的时候需要按照映射后的值进行比较,返回的值应该是输入的元素本身。</li>
|
||
</ul>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<pre><b>输入:</b>mapping = [8,9,4,0,2,1,3,5,7,6], nums = [991,338,38]
|
||
<b>输出:</b>[338,38,991]
|
||
<b>解释:</b>
|
||
将数字 991 按照如下规则映射:
|
||
1. mapping[9] = 6 ,所有数位 9 都会变成 6 。
|
||
2. mapping[1] = 9 ,所有数位 1 都会变成 8 。
|
||
所以,991 映射的值为 669 。
|
||
338 映射为 007 ,去掉前导 0 后得到 7 。
|
||
38 映射为 07 ,去掉前导 0 后得到 7 。
|
||
由于 338 和 38 映射后的值相同,所以它们的前后顺序保留原数组中的相对位置关系,338 在 38 的前面。
|
||
所以,排序后的数组为 [338,38,991] 。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<pre><b>输入:</b>mapping = [0,1,2,3,4,5,6,7,8,9], nums = [789,456,123]
|
||
<b>输出:</b>[123,456,789]
|
||
<b>解释:</b>789 映射为 789 ,456 映射为 456 ,123 映射为 123 。所以排序后数组为 [123,456,789] 。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>mapping.length == 10</code></li>
|
||
<li><code>0 <= mapping[i] <= 9</code></li>
|
||
<li><code>mapping[i]</code> 的值 <strong>互不相同</strong> 。</li>
|
||
<li><code>1 <= nums.length <= 3 * 10<sup>4</sup></code></li>
|
||
<li><code>0 <= nums[i] < 10<sup>9</sup></code></li>
|
||
</ul>
|