public class Solution
{
/// <summary>
/// 思路: 1.对数组进行排序
/// 2.如果数据全是负数,那么最大的3个数相乘即为最大值
/// 如果数据全是正数,那么最大的3个数相乘即为最大值
/// 如果数据有正有负,那么最大的数可能是俩个最小的负数和一个最大正数相乘或3个最大的正数相乘
/// </summary>
/// <param name="nums"></param>
/// <returns></returns>
public int MaximumProduct(int[] nums)
{
Array.Sort(nums);
int n = nums.Length;
return Math.Max(nums[0] * nums[1] * nums[n - 1], nums[n - 1] * nums[n - 2] * nums[n - 3]);
}
}