AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2557. 最低位排序

简单通过率 77% · 提交 90 · 通过 69
排序模拟数学

小慕在处理一批整数数据时遇到了一个问题。他有一个非空数组(列表),其中的元素都是整型数据。现在,他需要按照每个元素从小到大的顺序对数组进行排序。如果两个元素的十进制最低位相同,则它们在排序后的相对位置必须保持不变。需要注意的是,当数组元素为负值时,它的十进制最低位等同于去除负号后对应十进制数值的最低位。

提示:带虚线的词点一下有通俗解释。

输入描述

给定一个非空数组,其元素数据类型为32位有符号整数,数组长度为[1,1000]。

输出描述

输出排序后的数组

示例

示例 1

输入

1,2,5,-21,22,11,55,-101,42,8,7,32

输出

1,-21,11,-101,2,22,42,32,5,55,7,8

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
最低位排序图解 原始数组: 1 2 5 -21 22 11 55 -101 42 8 按最低位分组(负数看绝对值个位): 个位=1 1 -21 11 -101 个位=2 2 22 42 32 个位=5 5 55 个位=7 7 个位=8 8 排序结果:按个位从小到大,相同个位保持原顺序
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「最低位排序」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。