628. 三个数的最大乘积(206.07.26)

📅 2026/7/27 10:24:35 👁️ 阅读次数 📝 编程学习
628. 三个数的最大乘积(206.07.26)

题目描述

给你一个整型数组nums,在数组中找出由三个数组成的最大乘积,并输出这个乘积。

示例 1:

输入:nums = [1,2,3]
输出:6

示例 2:

输入:nums = [1,2,3,4]
输出:24

示例 3:

输入:nums = [-1,-2,-3]
输出:-6

提示:

  • 3 <= nums.length <= 10^4
  • -1000 <= nums[i] <= 1000

苯人思路

classSolution{public:intmaximumProduct(vector<int>&nums){sort(nums.begin(),nums.end());intn=nums.size();// 如果最大的数<=0,则返回数组中最大的三个数的乘积if(nums[n-1]<=0)returnnums[n-1]*nums[n-2]*nums[n-3];// 比较最小的两个数和第二大第三大数的乘积// temp = 乘积更大的那个inttemp=(nums[0]*nums[1]>nums[n-2]*nums[n-3])?nums[0]*nums[1]:nums[n-2]*nums[n-3];// 最后再乘上最大的数(>0)returntemp*nums[n-1];}};