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

二维数组单行元素处理:最大值后不满足递减时修正较小元素

二维数组行处理方案

核心逻辑

要满足要求的规则,只需按以下步骤逐行处理即可:

  • 对每行先找到第一个最大值的索引位置,最大值本身不需要修改
  • 对最大值之后的元素,从右往左反向遍历:每一步只需要保证左侧元素大于等于右侧相邻元素,遇到更小的左侧元素直接用右侧值覆盖即可,遍历完成后自然就满足递减要求。

你给出的示例验证逻辑如下:
原行:[1,1,5,2,4]
最大值5的索引是2,后续元素是[2,4]
从右往左遍历:

  1. 最右侧元素4无需修改
  2. 比较左侧的2和右侧的4,2<4,将2替换为4,后续元素变为[4,4]
  3. 最终行结果为[1,1,5,4,4],和要求的输出完全一致。

代码实现(Python示例)

def process_2d_array(arr):
    # 遍历每一行
    for row in arr:
        if not row:  # 跳过空行
            continue
        # 找第一个最大值的索引
        max_val = max(row)
        max_idx = row.index(max_val)
        # 从后往前遍历最大值之后的元素
        for i in range(len(row)-1, max_idx, -1):
            if row[i-1] < row[i]:
                row[i-1] = row[i]
    return arr

# 测试用例
test_arr = [
    [1,1,5,2,4]
]
processed = process_2d_array(test_arr)
print(processed) # 输出 [[1, 1, 5, 4, 4]]

其他语言适配说明

如果用Java、C++等其他编程语言实现,逻辑完全一致:

  1. 逐行处理,查找第一个最大值的位置
  2. 反向遍历最大值右侧的元素,若左侧元素小于右侧则用右侧值覆盖左侧

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:24:04