给出一个整型数组,找出任意三个数乘积的最大值
时间: 2024-09-21 15:02:41 浏览: 39
为了找到整型数组中任意三个数的乘积最大值,可以使用哈希表的数据结构来存储每个数及其索引,然后遍历一次数组,对每两个数做一次查找,看它们与当前最大乘积的乘积是否有更大的结果。以下是Python的一个解决方案:
```python
def max_three_product(nums):
nums.sort() # 先排序数组,方便找到最小的两个数
min_num = nums[0]
second_min = nums[1] if len(nums) > 1 else float('inf')
result = nums[0] * nums[1] * nums[-1] # 初始化最大乘积为数组中的三个最大数
# 使用哈希表记录每个数及它的索引
hash_table = {num: i for i, num in enumerate(nums)}
# 检查除最小两个外的数,与已知的最大乘积比较
for i in range(2, len(nums)):
current_product = min_num * second_min * nums[i]
if current_product > result:
result = current_product
# 更新第二小的数,如果找到了更小的
if nums[i] < second_min:
second_min = nums[i]
return result
# 示例数组
nums = [1, -2, -3, 4, 5]
print(max_three_product(nums)) # 输出:60 (取值1、-2和5)
```
阅读全文