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

Java如何根据数组B的取值提取排序后A的对应位次最小元素

实现方案
  • 第一步:对数组A做升序排序,你已得到的排序结果 [3, 5, 7, 8, 11, 21] 是正确的
  • 第二步:提取元素时注意索引偏移:日常表述的「第k小」是1开头计数,而编程语言数组下标默认是0开头计数,所以取排序后A的元素时,索引值为 B[i] - 1,不能直接用B[i]作为索引
  • 第三步:将提取到的元素存入临时数组,执行你已实现的结果数组升序排序逻辑,即可得到预期输出

代码示例(Java)

import java.util.Arrays;

public class ArrayQuery {
    public static void main(String[] args) {
        int[] A = {7, 3, 8, 21, 5, 11};
        int[] B = {3, 5, 1};
        // 仅对A升序排序
        Arrays.sort(A);
        int[] tempRes = new int[B.length];
        for (int i = 0; i < B.length; i++) {
            // 核心逻辑:1基序号转0基索引
            tempRes[i] = A[B[i] - 1];
        }
        // 你已实现的结果数组升序排序逻辑
        Arrays.sort(tempRes);
        // 输出结果:[3, 7, 11]
        System.out.println(Arrays.toString(tempRes));
    }
}

逻辑验证

提取阶段的计算过程:
B[0] = 3 → 对应排序后A的索引2 → 取值为7
B[1] = 5 → 对应排序后A的索引4 → 取值为11
B[2] = 1 → 对应排序后A的索引0 → 取值为3
得到临时数组[7, 11, 3],升序排序后即为预期结果[3, 7, 11]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 10:57:02