LeetCode 628三个数的最大乘积

前言

回国之后已经好多天没空写博客了,一直在忙开题的事情,搞了整整十天才弄好,也还只是写完了开题报告,还有PPT和一场难熬的答辩在等着我。。。

总的来说,这几天一直没空去学习前端知识,就这样过去了十天,以至于做个题都忘了有的API怎么写。

不过还好的是开题总算是水完了,还在里面混合了点JS的内容,反正都要做客户端,干嘛不用点自己会的技术呢?

于是又开始了找实习前最后的准备。。。

题目

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

示例 1:

输入: [1,2,3]
输出: 6
示例 2:

输入: [1,2,3,4]
输出: 24
注意:

给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。
输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。

Js

老老实实写规则的话,差不多就是这样的,排序之后做还是比较简单的。

/**
 * @param {number[]} nums
 * @return {number}
 */
var maximumProduct = function(nums) {
    let res = nums.sort((a,b) => b-a)
    if (res[0]<0) {
        return res[res.length-1]*res[res.length-2]*res[res.length-3]
    } 
    if (res[res.length-1]>0) {
        return res[0]*res[1]*res[2]
    }
    if (res[res.length-2]<0) {
        return res[0]*res[res.length-1]*res[res.length-2]>res[0]*res[1]*res[2] ?res[0]*res[res.length-1]*res[res.length-2] :res[0]*res[1]*res[2]
    }
    if (res[2]==0) {
        return 0 
    }
    return res[0]*res[1]*res[2]
};
发布了346 篇原创文章 · 获赞 330 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43870742/article/details/103527802