前言
回国之后已经好多天没空写博客了,一直在忙开题的事情,搞了整整十天才弄好,也还只是写完了开题报告,还有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]
};