js找出实数数组中三个数,使乘积最大

这是我遇到的一道面试题,当时拿到这个题目,就在想着分情况,自己把自己给分蒙了,,,现在来整理下。

1、先排除不正常的数组(数组中不足三个数)和数组中只有三个元素;

2、三个数乘机最大,无非只有两种情况要么是最大的三个数,要么就是两个最小的负数和一个最大的正数,把这两种情况的乘积对比下就知道答案了。

贴上代码:

方法1:是我自己写的,即先进行排序,然后直接取最大三个数和最小的两个数:

时间复杂度为O(n2)

方法2:这个是在网上看到的,即循环数组,拿最大的三个数和最小的两个数:

时间复杂度是O(n)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。