基数为 -2 的数组加法问题详解
题目描述
给定两个用负二进制(基数为 -2)表示的非负整数 arr1
和 arr2
,它们均以数组形式给出,数组中的元素为0或1,且从最高有效位到最低有效位排列(高位在前,低位在后)。任务是返回它们的和,同样用负二进制数组表示,且不含前导零。
负二进制表示规则:
- 基数是 -2,即第 i 位的权值为
(-2)^(n-1-i)
,n为数组长度。 - 数组中每个元素都是0或1。
- 数组不含前导零(除非表示的数是0时,数组就是
[0]
)。
例如:
arr = [1, 1, 0, 1]
对应的十进制值是:
(1 * (-2)^3) + (1 * (-2)^2) + (0 * (-2)^1) + (1 * (-2)^0)
= (-8) + 4 + 0 + 1 = -3
题目示例
- 示例 1:
输入:arr1 = [1,1,1,1,1], arr2 = [1,0,1]
输出:[1,0,0,0,0]
解释:arr1 表示 11,arr2 表示 5,输出表示 16。
- 示例 2:
输入:arr1 =