思路
通过例子演示可得出 num1[i] 和 num2[j] 的乘积对应的就是 res[i+j] 和 res[i+j+1] 这两个位置。
题解
function multiply(num1: string, num2: string): string {let m = num1.length;let n = num2.length;// 最大可能长度会是m + nlet resArr = new Array(m + n).fill(0);for (let i = m - 1; i >= 0; i--) {for (let j = n - 1; j >= 0; j--) {let mul = Number(num1[i]) * Number(num2[j]);let p1 = i + j;let p2 = i + j + 1;let sum = resArr[p2] + mul;resArr[p2] = sum % 10;resArr[p1] += Math.floor(sum / 10);}}let i = 0;while (i < resArr.length && resArr[i] === 0) {i++;}console.log(resArr);let resStr = '';for (; i < resArr.length; i++) {resStr += resArr[i];}return resStr === '' ? '0' : resStr;};
