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

每次同时递增数组两个元素 能否将所有元素变为最大值

正确解法

核心判断条件

满足以下两个条件即可输出YES,否则输出NO:

  • 所有元素和最大值的差值总和为偶数:每次操作会让数组总数值加2,总增量必须是2的倍数
  • 单个元素的最大差值 ≤ 剩余所有元素的差值总和:每次给差值最大的元素补1时,必须同时给另一个元素补1,因此给最大差值元素补数需要消耗的其他元素补数配额,不能超过其他元素的总补数需求

示例验证

用你给出的输入[2, 1, 2, 3]验证:

  1. 最大值为3,各元素差值为1、2、1、0,总差值为4,满足偶数要求
  2. 最大差值为2,剩余差值总和为1+1+0=2,2≤2,满足要求,因此输出YES

反例验证

比如输入[1, 3]:

  1. 最大值为3,差值为2、0,总差值为2满足偶数要求
  2. 最大差值为2,剩余差值总和为0,2>0,不满足要求,输出NO

参考代码(Python)

def check_array(arr):
    max_val = max(arr)
    diffs = [max_val - num for num in arr]
    total_diff = sum(diffs)
    max_diff = max(diffs)
    if total_diff % 2 == 0 and max_diff <= (total_diff - max_diff):
        return "YES"
    else:
        return "NO"

同类问题通用思路

这类操作类可行性判断问题,核心都是抓两个不变量:

  • 操作带来的总量变化特征:比如本题每次总增量为2,因此总差值必须为偶数
  • 极端值的约束:比如本题最大差值的元素需要匹配足够的其他元素的补数需求,避免极端值无法匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:48:03