当前位置: 面试刷题>> 第3章巩固200例 (经典算法题500道)


**题目描述补充**: 编写一个函数,该函数接受一个整数数组`nums`作为输入,并返回数组中所有元素的乘积(不考虑整数溢出问题)。 **要求**: 1. 不得使用任何内置函数直接计算数组乘积。 2. 如果数组为空,应返回1(因为空数组的乘积按数学定义是1)。 3. 如果数组中包含0,则乘积为0。 **示例1**: 输入: `[2, 3, 0, 4]` 输出: `0` 解释: 数组中有一个0,乘积为0。 **示例2**: 输入: `[2, 3, 4]` 输出: `24` 解释: 2 * 3 * 4 = 24。 **示例3**: 输入: `[]` 输出: `1` 解释: 空数组的乘积是1。 **PHP代码示例**: ```php function arrayProduct($nums) { $product = 1; foreach ($nums as $num) { if ($num == 0) { return 0; // 如果遇到0,直接返回0 } $product *= $num; // 否则,累乘 } return $product; } // 测试示例 echo arrayProduct([2, 3, 0, 4]) . "\n"; // 输出: 0 echo arrayProduct([2, 3, 4]) . "\n"; // 输出: 24 echo arrayProduct([]) . "\n"; // 输出: 1 ``` **Python代码示例**: ```python def array_product(nums): product = 1 for num in nums: if num == 0: return 0 # 如果遇到0,直接返回0 product *= num # 否则,累乘 return product # 测试示例 print(array_product([2, 3, 0, 4])) # 输出: 0 print(array_product([2, 3, 4])) # 输出: 24 print(array_product([])) # 输出: 1 ``` **JavaScript代码示例**: ```javascript function arrayProduct(nums) { let product = 1; for (let num of nums) { if (num === 0) { return 0; // 如果遇到0,直接返回0 } product *= num; // 否则,累乘 } return product; } // 测试示例 console.log(arrayProduct([2, 3, 0, 4])); // 输出: 0 console.log(arrayProduct([2, 3, 4])); // 输出: 24 console.log(arrayProduct([])); // 输出: 1 ``` **码小课提示**: 在解决此类问题时,重要的是要考虑到边界条件和特殊情况,如空数组和数组中包含0的情况。此外,对于整数溢出问题,虽然题目已说明不考虑,但在实际应用中需要特别注意处理大数乘积的情况。码小课网站中有更多关于算法和数据结构的内容分享,欢迎大家学习交流。
推荐面试题