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

Java实现数组非负元素与后续r个元素求和函数求助

问题:实现指定逻辑的数组处理函数

需求说明

需要实现一个函数sortedlist,接收整数数组l和整数r,返回一个新数组。新数组的生成规则:

  • 原数组中非负元素,需要将其与后续最多r个元素相加(不能超出数组范围),用这个和替换原位置的值;
  • 原数组中的负数保持不变。

举个具体例子:
原数组 l = {1, 2, -3, 4, 5, 4},r = 3
处理逻辑:

  • l[0](非负):累加自身+后续3个元素,即1+2+(-3)+4 = 4
  • l[1](非负):累加自身+后续3个元素,即2+(-3)+4+5 = 8
  • l[2](负数):不处理,保持-3
  • l[3](非负):累加自身+后续最多3个元素(数组只剩2个后续元素),即4+5+4 = 13
  • l[4](非负):累加自身+后续最多3个元素(只剩1个后续元素),即5+4 = 9
  • l[5](非负):无后续元素,保持4

处理后结果:{4, 8, -3, 13, 9, 4}

现有未完成代码

public class Practice2 {
    public static void sortedlist(int[] l, int r) {
        int[] A;
        int sum = 0;
        for (int i = 0; i < l.length + r; i+=r) {
            sum = sum +=
        }
    }
}

代码实现与逻辑说明

完整代码

public class Practice2 {
    // 修改返回值类型为int[],满足返回新数组的需求
    public static int[] sortedlist(int[] l, int r) {
        // 初始化新数组,长度与原数组一致
        int[] A = new int[l.length];
        
        // 遍历原数组每个元素
        for (int i = 0; i < l.length; i++) {
            // 负数直接复制到新数组,跳过求和逻辑
            if (l[i] < 0) {
                A[i] = l[i];
                continue;
            }
            
            // 非负元素计算累加和
            int sum = 0;
            // 从当前索引i开始,最多取r+1个元素(自身+后续r个),不超出数组边界
            for (int j = i; j <= i + r && j < l.length; j++) {
                sum += l[j];
            }
            // 将计算结果存入新数组对应位置
            A[i] = sum;
        }
        
        return A;
    }

    // 测试用例
    public static void main(String[] args) {
        int[] l = {1, 2, -3, 4, 5, 4};
        int r = 3;
        int[] result = sortedlist(l, r);
        // 输出结果:4 8 -3 13 9 4
        for (int num : result) {
            System.out.print(num + " ");
        }
    }
}

逻辑说明

  1. 数组初始化:创建和原数组长度相同的新数组A,避免修改原数组,符合返回新数组的要求。
  2. 逐个元素处理:遍历原数组的每个索引i:
    • 若当前元素为负数,直接复制到新数组对应位置,跳过后续计算。
    • 若为非负元素,初始化累加和sum,从i开始遍历到i+r(但不能超过数组最后一个索引l.length-1),将范围内的元素累加到sum中。
  3. 结果返回:将计算好的sum存入新数组A的对应位置,遍历完成后返回A。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:40:28