中等
给你两个整数数组 source 和 target。
在一次 操作 中,你可以选择 source 中两个 不同 的下标 i 和 j,以及任何整数 delta。然后按如下方式更新 source:
source[i] = source[i] + source[j] - deltasource[j] = delta
如果在执行该操作 任意 次(包括零次)后能够使 source 等于 target,则返回 true。否则,返回 false。
示例 1:
输入: source = [1,2,3], target = [0,2,4]
输出: true
解释:
- 选择下标
i = 0和j = 2,并设置delta = 4。 - 操作前,
source[0] = 1且source[2] = 3。 - 操作后,
source[0] = 1 + 3 - 4 = 0source[2] = 4
- 因此,
source变为[0, 2, 4],这与target相等。 - 因此,答案为
true。
示例 2:
输入: source = [-5,-5], target = [-15,5]
输出: true
解释:
- 选择下标
i = 1和j = 0,并设置delta = -15。 - 操作前,
source[1] = -5且source[0] = -5。 - 操作后,
source[1] = -5 + (-5) - (-15) = 5source[0] = -15
- 因此,
source变为[-15, 5],这与target相等。 - 因此,答案为
true。
示例 3:
输入: source = [1,2,1], target = [0,2,5]
输出: false
解释:
可以证明,无论执行什么操作,都无法使 source 等于 target。因此,答案为 false。
提示:
2 <= source.length == target.length <= 105-109 <= source[i], target[i] <= 109