| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> Leetcode 628:三个数的最大乘积 -> 正文阅读 |
|
[数据结构与算法]Leetcode 628:三个数的最大乘积 |
题目描述:
示例 1:
示例 2:
示例 3:
解法一:排序 解题思路: 想要得到一个数组中三个数组成的最大乘积,就要找到数组中的三个最大数,但是还要考虑到数组中是否存在负数。因此,基于数组按升序排列的前提下,分为以下情况: (1)如果数组中全是正数,则直接选择排序数组的后三个数作为乘积。 (2)如果数组中全是非正数,则同样也是选择排序数组后三个数作为乘积。 (3)如果数组中既有负数,也有正数,则选择两个最小负数和一个最大正数作为乘积。 代码如下:
解法二:线性扫描 解题思路: 解法一中,不同的排序算法的时间复杂度会影响整体的执行时间,因此可以通过线性扫描的方式降低时间复杂度。实际上,我们只要求出数组中最大的三个数以及最小的两个数即可。 代码如下:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:46:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |