leetcode 628. 三个数的最大乘积
- 题目描述
- 解题思路
- 执行结果
题目描述
-
三个数的最大乘积
给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入:nums = [1,2,3] 输出:6 示例 2:
输入:nums = [1,2,3,4] 输出:24 示例 3:
输入:nums = [-1,-2,-3] 输出:-6
提示:
3 <= nums.length <= 104 -1000 <= nums[i] <= 1000
解题思路
法1
排序+模拟\
-
对数组进行排序 -
找出乘积最大的三个数
-
a[0]*a[1]*a[len-1] -
a[len-1]*a[len-2]*a[len-3]
这两种情况下可以取到最大值
-
时间复杂度(O(nlogn)) -
空间复杂度(O(1))
执行结果
法1
func maximumProduct(nums []int) int {
l := len(nums)
if l <= 3 {
return nums[1] * nums[2] * nums[0]
}
sort.Ints(nums)
if nums[0] > 0 && nums[l-1] < 0 || nums[0]*nums[1]*nums[l-1] < nums[l-1]*nums[l-2]*nums[l-3] {
return nums[l-1] * nums[l-2] * nums[l-3]
}
return nums[0] * nums[1] * nums[l-1]
}
执行结果: 通过 显示详情 查看示例代码 添加备注
执行用时: 48 ms , 在所有 Go 提交中击败了 66.67% 的用户 内存消耗: 6.3 MB , 在所有 Go 提交中击败了 72.73% 的用户 通过测试用例: 92 / 92 炫耀一下:
优化结构
func maximumProduct(nums []int) int {
l := len(nums)
sort.Ints(nums)
if nums[0]*nums[1]*nums[l-1] < nums[l-1]*nums[l-2]*nums[l-3] {
return nums[l-1] * nums[l-2] * nums[l-3]
}
return nums[0] * nums[1] * nums[l-1]
}
执行结果: 通过 显示详情 查看示例代码 添加备注
执行用时: 44 ms , 在所有 Go 提交中击败了 73.33% 的用户 内存消耗: 6.3 MB , 在所有 Go 提交中击败了 72.73% 的用户 通过测试用例: 92 / 92 炫耀一下:
本文由 mdnice 多平台发布
相关文章:
leetcode 628. 三个数的最大乘积
题目描述解题思路执行结果 leetcode 628. 三个数的最大乘积 题目描述 三个数的最大乘积 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 1: 输入:nums [1,2,3] 输出:6 示例 2&…...
fork函数如何创建进程,exit/_exit函数如何使进程终止的详细分析与代码实现
🎊【进程通信与并发】专题正在持续更新中,进程,线程,IPC,线程池等的创建原理与运用✨,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列…...
重置电脑时提示“缺少所需的驱动器分区”怎么办?
当您启动Windows 10电脑并收到“您的电脑/设备需修复”这个消息提示时,您会马上尝试修复电脑,如果您这样做了,您可能会收到一个“安装Windows的驱动器已被锁定”的信息。如果您尝试重置您的电脑,您可能会收到一条提示,…...
在KylinV10安装Dm8
前言 因为近期,业外和几个朋友想搞点有趣的项目玩玩,既然不以盈利为主,就> 主推国产化,所以这篇记录一下,我在KylinV10安装dm8.最近真的很忙,要负责专研一下国产化工具开发的事,还要负责tb级…...
「SQL面试题库」 No_46 交换工资
🍅 1、专栏介绍 「SQL面试题库」是由 不是西红柿 发起,全员免费参与的SQL学习活动。我每天发布1道SQL面试真题,从简单到困难,涵盖所有SQL知识点,我敢保证只要做完这100道题,不仅能轻松搞定面试࿰…...
SLAM论文速递【SLAM—— RDS-SLAM:基于语义分割方法的实时动态SLAM—4.24(1)
论文信息 题目: RDS-SLAM:Real-Time Dynamic SLAM Using Semantic Segmentation Methods RDS-SLAM:基于语义分割方法的实时动态SLAM论文地址: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber9318990发表期刊: IEEE Access ( Volum…...
OJ练习第82题——填充书架
填充书架 力扣链接:1105. 填充书架 题目描述 给定一个数组 books ,其中 books[i] [thicknessi, heighti] 表示第 i 本书的厚度和高度。你也会得到一个整数 shelfWidth 。 按顺序 将这些书摆放到总宽度为 shelfWidth 的书架上。 先选几本书放在书架…...
OHOS IDE和SDK的安装方法
参照OpenHarmony应用开发环境安装流程,下载安装OHOS的IDE,过程中需要全程联网。 IDE,安装至D:\Tools\Huawei\DevEcoStudio。 IDE安装成功之后,按照提示下载安装HOS和OHOS的SDK。 nodejs,安装至D:\Tools\Huawei\nodejs…...
New Year Garland(计数类DP)
New Year Garland 题意 用m种颜色的球装饰n层的圣诞树,圣诞树的第i层由 l i l_{i} li个彩球串成,且同一层相邻的球颜色不同,相邻的层之间彩球颜色的集合不同,问有多少种方案,对p取模。 分析 首先先计算每一…...
32岁阿里P7,把简历改成不知名小公司,学历改成普通本科,工作内容不变,投简历全挂!...
hr靠什么来招人? 一位猎头讲述了自己和朋友打赌的故事: 朋友在阿里云,32岁,P7,他把简历上的公司改成不知名,学历改成普通本科,工作内容不变,结果投其他公司(比如京东&…...
从三室心脏MRI影像检测主动脉瓣病变
Detecting Aortic Valve Pathology from the 3-Chamber Cine Cardiac MRI View 摘要 背景 心脏磁共振(CMR)是量化心脏容量、功能和血流量的金标准。定制的MR脉冲序列定义了对比机制,采集几何形状和定时,可以在CMR期间应用,以实现独特的组织…...
【JavaWeb】JavaScript
1、JavaScript 介绍 Javascript 语言诞生主要是完成页面的数据验证。因此它运行在客户端,需要运行浏览器来解析执行 JavaScript 代码。 JS 是 Netscape 网景公司的产品,最早取名为 LiveScript;为了吸引更多 java 程序员。更名为 JavaScript。 JS 是弱…...
Apache Doris 1.2.4 Release 版本正式发布|版本通告
亲爱的社区小伙伴们,我们很高兴地宣布,Apache Doris 于 2023 年 4 月 27 日迎来 1.2.4 Release 版本的正式发布!在 1.2.4 版本中,Doris 团队已经修复了自 1.2.3 版本发布以来近 150 个问题或性能改进项。同时,1.2.4 版…...
【C++STL】map
文章目录 一. map的介绍二. map的使用结束语 一. map的介绍 map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素在map中,键值key通常用于排序和唯一地标识元素,而value中存储与此键值…...
vue2项目PC端如何适配不同分辨率屏幕
项目构建:基于vue-cli3构建,使用postcss-px2rem px2rem-loader进行rem适配 实现原理:每次打包,webpack通过使用插件postcss-px2rem,帮我们自动将px单位转换成rem单位前方有坑:UI框架部分组件使用JavaScript…...
CorelDRAW2023最新版本图像设计软件
CorelDRAW 2023作为最新版的图像设计软件,在功能上做了较大提升,主要新的功能特性如下: 1. 全新界面设计:采用简约现代的 UI 设计,菜单和工具重新组织,更加直观易用。提供自动提示与设计指导,易于上手。 2. 智能工具与提示:运用 AI技术对用户操作行为和设计习惯进行分析,给出…...
第64章 树型结构数据的前端渲染渲染显示示例
1 \src\views\TreeTestView.vue <template> <div class"wrap"> <!--注意:1、“回到顶部”组件及其回滚内容都必须包含到同1个div容器中。--> <!-- 2、div容器中必须有1个唯1性的样式类(例如:wrap)…...
超级国际象棋:第二个里程碑已完成
获取Cartesi资助的项目的最新进展,现在将完全去中心化的Web3国际象棋带到你的手中 “Ultrachess是一个完全基于区块链的国际象棋应用程序,由Cartesi Rollup技术支持,允许用户将真实价值投入到比赛中,不仅仅是他们的Elo分数。 此…...
vue3 HTML 和静态资源
目录 静态资源可以通过两种方式进行处理: URL 转换规则 public 文件夹 何时使用 public 文件夹 public/index.html 文件是一个会被 html-webpack-plugin 处理的模板。在构建过程中,资源链接会被自动注入。另外,Vue CLI 也会自动注入 re…...
5G基站外市电改造建设方案 (ppt可编辑)
本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除 外市电定义及分类 定义:由供电部门提供的专用高压电源或非专用高压电源或低压电源均称为市电。分类: (1)按电压等级分类 ①提供…...
开放量子系统模拟:分治法混合态制备与Kraus算子优化
1. 开放量子系统模拟的挑战与机遇量子计算最令人期待的潜力之一,就是能够高效模拟传统计算机难以处理的量子系统动力学。然而在实际物理系统中,完全孤立的量子系统并不存在——环境噪声、退相干效应和测量干扰都会显著影响系统演化。这类与环境相互作用的…...
新基建淘汰战:UWB高功耗基站 vs 镜像视界边缘AI无感定位
新基建淘汰战:UWB高功耗基站 vs 镜像视界边缘AI无感定位新基建浪潮下,低能耗、强兼容、可扩展成为空间感知技术的核心准入门槛。UWB厘米级定位深陷高功耗基站强硬件绑定的沉重模式,而镜像视界浙江科技有限公司以边缘AI无感定位为核心…...
FLUX.1-dev FP8低显存优化版终极指南:破解大模型部署难题
FLUX.1-dev FP8低显存优化版终极指南:破解大模型部署难题 【免费下载链接】flux1-dev 项目地址: https://ai.gitcode.com/hf_mirrors/Comfy-Org/flux1-dev 在AI图像生成领域,显存限制一直是开发者面临的核心挑战。当主流模型动辄需要24GB以上显存…...
掌握3大核心架构:LiveSplit如何为速度跑者提供毫秒级精准计时
掌握3大核心架构:LiveSplit如何为速度跑者提供毫秒级精准计时 【免费下载链接】LiveSplit A sleek, highly customizable timer for speedrunners. 项目地址: https://gitcode.com/gh_mirrors/li/LiveSplit 如果你是一名速度跑者,面对复杂的游戏计…...
课堂教室学生行为识别分割数据集labelme格式1420张4类别
注意数据集中有增强图片主要是亮度对比度增强,此外图片并不是十分清晰,具体看图片数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件)图片数量(jpg文件个数):1420标注数量(json文件个数)&#x…...
Qt 高级开发 009: C++ Lambda 表达式
Qt 高级开发 009: C Lambda 表达式Bilibili 同步视频🔎 一、Lambda 表达式:到底是什么?🧩 二、Lambda 完整结构:六大核心组件1. 捕获列表 [ ] 🎫2. 参数列表 ( ) 📥3. mutable 关键字…...
3分钟搞定M3U8视频下载:N_m3u8DL-CLI-SimpleG完整指南
3分钟搞定M3U8视频下载:N_m3u8DL-CLI-SimpleG完整指南 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 还在为无法下载在线视频而烦恼吗?想保存喜欢的教学视…...
BilibiliDown音频提取终极指南:3种方法从B站视频提取高质量音乐
BilibiliDown音频提取终极指南:3种方法从B站视频提取高质量音乐 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_…...
[特殊字符] TCP/IP四层协议栈解析——互联网通信的“底层逻辑“
📅 发布时间:2026年5月 | 🏷️ 标签:TCP/IP、网络协议、网络架构、互联网原理、网络层 🔍 SEO关键词:TCP/IP协议栈、四层模型、ARP协议、IP协议、网络通信原理开篇暴击:你正在看这篇文章&#x…...
3步掌握智慧树自动学习:解放双手的课程自动化神器
3步掌握智慧树自动学习:解放双手的课程自动化神器 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台繁琐的视频学习而烦恼吗?智慧…...
