三天没写题了,这两个是女神节写的。
304.最大乘积
题目描述:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大。题目链接
point是
- nums.size<=500000
- -10000 <= nums[i] <= 10000−10000<=nums[i]<=10000
题目分析:
每次感觉自己想的十分复杂,其实十分easy。
(1)给数组从小到大排序
(2)找到正数三个最大的相乘,或者两个最小的数和最大的相乘。
public class Solution {
/**
* @param nums: Unordered array
* @return: return the largest product
*/
public long MaximumProduct(int[] nums) {
// write your code here
if(nums.length<3)
return 0;
Arrays.sort(nums);//从小到大排序
int n = nums.length;
//找出最大的三个正数相乘nums[n-1],nums[n-2