3549:两个多项式相乘(★★)
目录
题目
给定两个整数数组 poly1
和 poly2
,其中每个数组中下标 i
的元素表示多项式中 xi
的系数。
设 A(x)
和 B(x)
分别是 poly1
和 poly2
表示的多项式。
返回一个长度为 (poly1.length + poly2.length - 1)
的整数数组 result
表示乘积多项式 R(x) = A(x) * B(x)
的系数,其中 result[i]
表示 R(x)
中 xi
的系数。
示例 1:
输入:poly1 = [3,2,5], poly2 = [1,4]
输出:[3,14,13,20]
解释:
A(x) = 3 + 2x + 5x2
且B(x) = 1 + 4x
R(x) = (3 + 2x + 5x2) * (1 + 4x)
R(x) = 3 * 1 + (3 * 4 + 2 * 1)x + (2 * 4 + 5 * 1)x2 + (5 * 4)x3
R(x) = 3 + 14x + 13x2 + 20x3
- 因此,result =
[3, 14, 13, 20]
。
示例 2:
输入:poly1 = [1,0,-2], poly2 = [-1]
输出:[-1,0,2]
解释:
A(x) = 1 + 0x - 2x2
且B(x) = -1
R(x) = (1 + 0x - 2x2) * (-1)
R(x) = -1 + 0x + 2x2
- 因此,result =
[-1, 0, 2]
。
示例 3:
输入:poly1 = [1,5,-3], poly2 = [-4,2,0]
输出:[-4,-18,22,-6,0]
解释:
A(x) = 1 + 5x - 3x2
且B(x) = -4 + 2x + 0x2
R(x) = (1 + 5x - 3x2) * (-4 + 2x + 0x2)
R(x) = 1 * -4 + (1 * 2 + 5 * -4)x + (5 * 2 + -3 * -4)x2 + (-3 * 2)x3 + 0x4
R(x) = -4 -18x + 22x2 -6x3 + 0x4
- 因此,result =
[-4, -18, 22, -6, 0]
。
提示:
1 <= poly1.length, poly2.length <= 5 * 104
-103 <= poly1[i], poly2[i] <= 103
poly1
与poly2
至少包含一个非零系数。
分析
- fft 模板
解答
|
|
3480 ms