题目描述补充:
编写一个函数,该函数接受一个整数数组nums
作为输入,并返回数组中所有元素的乘积(不考虑整数溢出问题)。
要求:
- 不得使用任何内置函数直接计算数组乘积。
- 如果数组为空,应返回1(因为空数组的乘积按数学定义是1)。
- 如果数组中包含0,则乘积为0。
示例1:
输入: [2, 3, 0, 4]
输出: 0
解释: 数组中有一个0,乘积为0。
示例2:
输入: [2, 3, 4]
输出: 24
解释: 2 * 3 * 4 = 24。
示例3:
输入: []
输出: 1
解释: 空数组的乘积是1。
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代码示例:
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代码示例:
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的情况。此外,对于整数溢出问题,虽然题目已说明不考虑,但在实际应用中需要特别注意处理大数乘积的情况。码小课网站中有更多关于算法和数据结构的内容分享,欢迎大家学习交流。