算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选! 今天和大家聊的问题叫做三个数的最大乘积,我们先来看题面: https:leetcode。cnproblemsmaximumproductofthreenumbers Givenanintegerarraynums,findthreenumberswhoseproductismaximumandreturnthemaximumproduct。 给你一个整型数组nums,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例示例1: 输入:nums〔1,2,3〕 输出:6 示例2: 输入:nums〔1,2,3,4〕 输出:24 示例3: 输入:nums〔1,2,3〕 输出:6 解题 https:blog。csdn。netweixin45367847articledetails118599029 排序后,如果数组中全是非负数,则排序后最大的三个数相乘即为最大乘积;如果全是非正数,则最大的三个数相乘同样也为最大乘积。 如果数组中有正数有负数,则最大乘积既可能是三个最大正数的乘积,也可能是两个最小负数(即绝对值最大)与最大正数的乘积。classSolution{ publicintmaximumProduct(int〔〕nums){ intmin1Integer。MAXVALUE,min2Integer。MAXVALUE; intmax1Integer。MINVALUE,max2Integer。MINVALUE,max3Integer。MINVALUE; for(intx:nums){ if(xmin1){ min2min1; min1x; }elseif(xmin2){ min2x; } if(xmax1){ max3max2; max2max1; max1x; }elseif(xmax2){ max3max2; max2x; }elseif(xmax3){ max3x; } } returnMath。max(min1min2max1,max1max2max3); } } 上期推文: LeetCode1620题汇总,希望对你有点帮助! LeetCode刷题实战621:任务调度器 LeetCode刷题实战622:设计循环队列 LeetCode刷题实战623:在二叉树中增加一行 LeetCode刷题实战624:数组列表中的最大距离 LeetCode刷题实战625:最小因式分解 LeetCode刷题实战626:换座位 LeetCode刷题实战627:变更性别