You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数组元素取整转换后排序的技术实现方案问询

数组取整转换与排序解决方案

转换规则明确

先把问题中的取整逻辑提炼为可执行规则:

  • 数字为0时,保持0不变
  • 非0数字:
    • 个位数字≥5时,向上取整到最近的10的倍数,再除以10得到转换值
    • 个位数字<5时,向下取整到最近的10的倍数,再除以10得到转换值

代码实现(Python)

1. 定义转换函数

def transform_num(num):
    if num == 0:
        return 0
    remainder = num % 10
    if remainder >= 5:
        rounded = ((num // 10) + 1) * 10
    else:
        rounded = (num // 10) * 10
    return rounded // 10

2. 处理数组并排序

# 测试原数组
original_array = [0, 16, 27, 73, 55]
# 生成转换后的数组
transformed_array = [transform_num(num) for num in original_array]
# 排序(保留所有重复项)
sorted_result = sorted(transformed_array)

print(sorted_result)  # 输出: [0, 2, 3, 6, 7]

3. 重复元素测试

如果原数组包含会转换出重复值的元素,比如[0, 16, 15, 73, 55, 54],执行代码后:

  • 转换后数组为[0, 2, 2, 7, 6, 5]
  • 排序结果为[0, 2, 2, 5, 6, 7],完全符合保留所有重复条目的要求

逻辑说明

  • 转换函数通过取余运算判断个位数字,精准控制取整方向
  • 列表推导式快速完成批量元素转换
  • Python内置的sorted()函数默认按升序排列,且不会剔除重复元素,刚好满足需求

内容的提问来源于stack exchange,提问作者niamad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 12:36:18