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

如何从整数数组中提取绝对值最大的三个数(负数转为正数)?

提取整数数组中绝对值最大的三个数

需求说明

从整数数组中筛选出三个绝对值最大的数,输出结果按绝对值从大到小排列。示例:

输入:int[] nums={3,5,8,1,2,0,-10,-20}
输出:{20,10,8}

代码实现

private List<Integer> largestThreeNums(int[] nums) {
    Arrays.sort(nums);
    int x = nums.length;
    return Arrays.asList(Math.abs(nums[x-1]), Math.abs(nums[x-2]), Math.abs(nums[x-3]));
}

代码逻辑解释

  • 先对数组做升序排序,示例数组排序后变为 [-20, -10, 0, 1, 2, 3, 5, 8]
  • 数组末尾的三个元素是原始数组中数值最大的三个(包含负数),通过Math.abs()将它们转为绝对值,刚好满足"最大的负数转为正数"的要求
  • 最终把这三个绝对值结果封装成List返回,顺序自然是从大到小排序的状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:20:45