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

Java中基于原数组生成新数组:3的倍数元素加下一个偶数的实现

实现符合需求的数组转换

首先咱们先拆解需求和例子,明确逻辑:从你的例子[1,3,4,6,1]得到[1,7,4,6,1]可以看出,规则是:

  • 遍历原数组生成全新数组(不修改原数组)
  • 元素不是3的倍数:直接保留原值
  • 元素是3的倍数:找到它在数组中后面的第一个偶数元素,将当前元素与这个偶数相加;如果后面没有偶数,就保留原值

下面用Python给出具体实现,逻辑清晰且容易扩展:

步骤1:写一个辅助函数找后续第一个偶数

这个函数负责帮我们定位当前元素之后的第一个偶数,找不到就返回None:

def find_next_even(arr, current_index):
    # 从当前元素的下一个位置开始遍历
    for i in range(current_index + 1, len(arr)):
        if arr[i] % 2 == 0:
            return arr[i]
    # 遍历完后面所有元素都没找到偶数,返回None
    return None

步骤2:生成转换后的新数组

遍历原数组,对每个元素应用规则:

def transform_array(original_arr):
    new_array = []
    for idx, num in enumerate(original_arr):
        if num % 3 == 0:
            # 找当前元素后面的第一个偶数
            next_even_num = find_next_even(original_arr, idx)
            if next_even_num is not None:
                new_array.append(num + next_even_num)
            else:
                new_array.append(num)
        else:
            new_array.append(num)
    return new_array

测试验证

用你的例子测试一下:

a = [1,3,4,6,1]
result = transform_array(a)
print(result)  # 输出:[1,7,4,6,1],完全符合预期

如果是其他语言(比如JavaScript)

这里也给个JS版本的实现,逻辑一样:

function findNextEven(arr, currentIndex) {
    for (let i = currentIndex + 1; i < arr.length; i++) {
        if (arr[i] % 2 === 0) {
            return arr[i];
        }
    }
    return null;
}

function transformArray(originalArr) {
    const newArr = [];
    for (let idx = 0; idx < originalArr.length; idx++) {
        const num = originalArr[idx];
        if (num % 3 === 0) {
            const nextEven = findNextEven(originalArr, idx);
            newArr.push(nextEven !== null ? num + nextEven : num);
        } else {
            newArr.push(num);
        }
    }
    return newArr;
}

// 测试
const a = [1,3,4,6,1];
console.log(transformArray(a)); // 输出:[1,7,4,6,1]

如果我对“下一个偶数”的理解有偏差(比如你指的是数学上大于当前元素的最小偶数,而不是数组后续的元素),可以随时告诉我,我再调整实现~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:08:10