给你一个整数数组 nums。
二进制反射 是对一个 正整数 的二进制表示按顺序反转(忽略前导零)后,将反转得到的二进制数转为十进制的结果。
请按每个元素的二进制反射值的 升序 对数组进行排序。如果两个不同的数字具有相同的二进制反射值,则 较小 的原始数字应排在前面。
返回排序后的数组。
示例 1:
输入: nums = [4,5,4]
输出: [4,4,5]
解释:
二进制反射值为:
100 -> (反转) 001 -> 1101 -> (反转) 101 -> 5100 -> (反转) 001 -> 1[4, 4, 5]。示例 2:
输入: nums = [3,6,5,8]
输出: [8,3,6,5]
解释:
二进制反射值为:
11 -> (反转) 11 -> 3110 -> (反转) 011 -> 3101 -> (反转) 101 -> 51000 -> (反转) 0001 -> 1[8, 3, 6, 5]。
提示:
1 <= nums.length <= 1001 <= nums[i] <= 109