摘要:題目詳情輸入一個(gè)大小大于等于三的數(shù)組,給出其中任意三個(gè)數(shù)乘積中的最大乘積想法這道題最主要的是要考慮正負(fù)數(shù)的情況。如果全都是正數(shù)相乘比較大,就取三個(gè)最大值相乘即可。
題目詳情
Given an integer array, find three numbers whose product is maximum and output the maximum product.想法輸入一個(gè)大小大于等于三的數(shù)組,給出其中任意三個(gè)數(shù)乘積中的最大乘積
Example 1:
Input: [1,2,3]
Output: 6
Example 2:
Input: [1,2,3,4]
Output: 24
這道題最主要的是要考慮正負(fù)數(shù)的情況。
如果全都是正數(shù)相乘比較大,就取三個(gè)最大值相乘即可。
如果負(fù)數(shù)的絕對值比較大,我們可以取絕對值最大的兩個(gè)負(fù)數(shù)參與相乘,最后比較一下兩種算法的乘積哪個(gè)大。
解法一 時(shí)間復(fù)雜度O(n)這個(gè)解法寫起來麻煩一點(diǎn),判斷條件比較多,但是時(shí)間復(fù)雜度為O(n)
public int maximumProduct(int[] nums) { Integer max1 = Integer.MIN_VALUE;Integer max2 = max1;Integer max3 = max1; Integer min1 = Integer.MAX_VALUE;Integer min2 = min1; for(int num : nums){ if(num > max1){ max3 = max2; max2 = max1; max1 = num; }else if(num > max2){ max3 = max2; max2 = num; }else if(num > max3){ max3 = num; } if(num < min1){ min2 = min1; min1 = num; }else if(num < min2){ min2 = num; } } return Math.max(max1*max2*max3, max1*min1*min2); }解法二 預(yù)排序
先對數(shù)組進(jìn)行預(yù)排序的算法比較簡潔,但是時(shí)間復(fù)雜度為O(nlogn)
public int maximumProduct(int[] nums) { Arrays.sort(nums); int a = nums[nums.length - 1] * nums[nums.length - 2] * nums[nums.length - 3]; int b = nums[0] * nums[1] * nums[nums.length - 1]; return a > b ? a : b; }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/68419.html
Problem Given an integer array, find three numbers whose product is maximum and output the maximum product. Example 1:Input: [1,2,3]Output: 6Example 2:Input: [1,2,3,4]Output: 24Note:The length of the ...
摘要:前言從開始寫相關(guān)的博客到現(xiàn)在也蠻多篇了。而且當(dāng)時(shí)也沒有按順序?qū)懍F(xiàn)在翻起來覺得蠻亂的??赡艽蠹铱粗卜浅2环奖恪K栽谶@里做個(gè)索引嘻嘻。順序整理更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新 前言 從開始寫leetcode相關(guān)的博客到現(xiàn)在也蠻多篇了。而且當(dāng)時(shí)也沒有按順序?qū)憽F(xiàn)在翻起來覺得蠻亂的??赡艽蠹铱粗卜浅2环奖恪K栽谶@里做個(gè)索引嘻嘻。 順序整理 1~50 1...
摘要:在線網(wǎng)站地址我的微信公眾號(hào)完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個(gè)題。這是項(xiàng)目地址歡迎一起交流學(xué)習(xí)。 這篇文章記錄我練習(xí)的 LeetCode 題目,語言 JavaScript。 在線網(wǎng)站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號(hào): showImg(htt...
Problem Find the largest palindrome made from the product of two n-digit numbers. Since the result could be very large, you should return the largest palindrome mod 1337. Example Input: 2Output: 987Ex...
Problem Given an integer array with even length, where different numbers in this array represent different kinds of candies. Each number means one candy of the corresponding kind. You need to distribu...
閱讀 2105·2021-11-11 16:54
閱讀 2173·2019-08-30 15:55
閱讀 3668·2019-08-30 15:54
閱讀 453·2019-08-30 15:44
閱讀 2287·2019-08-30 10:58
閱讀 484·2019-08-26 10:30
閱讀 3108·2019-08-23 14:46
閱讀 3309·2019-08-23 13:46