当前位置: 首页 > news >正文

leetcode 628. 三个数的最大乘积

  • 题目描述
  • 解题思路
  • 执行结果
leetcode 628. 三个数的最大乘积


题目描述

  1. 三个数的最大乘积

给你一个整型数组 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

排序+模拟\

  1. 对数组进行排序
  2. 找出乘积最大的三个数
  • 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 &#xff0c;在数组中找出由三个数组成的最大乘积&#xff0c;并输出这个乘积。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;6 示例 2&…...

fork函数如何创建进程,exit/_exit函数如何使进程终止的详细分析与代码实现

&#x1f38a;【进程通信与并发】专题正在持续更新中&#xff0c;进程&#xff0c;线程&#xff0c;IPC&#xff0c;线程池等的创建原理与运用✨&#xff0c;欢迎大家前往订阅本专题&#xff0c;获取更多详细信息哦&#x1f38f;&#x1f38f;&#x1f38f; &#x1fa94;本系列…...

重置电脑时提示“缺少所需的驱动器分区”怎么办?

当您启动Windows 10电脑并收到“您的电脑/设备需修复”这个消息提示时&#xff0c;您会马上尝试修复电脑&#xff0c;如果您这样做了&#xff0c;您可能会收到一个“安装Windows的驱动器已被锁定”的信息。如果您尝试重置您的电脑&#xff0c;您可能会收到一条提示&#xff0c;…...

在KylinV10安装Dm8

前言 因为近期&#xff0c;业外和几个朋友想搞点有趣的项目玩玩&#xff0c;既然不以盈利为主&#xff0c;就> 主推国产化&#xff0c;所以这篇记录一下&#xff0c;我在KylinV10安装dm8.最近真的很忙&#xff0c;要负责专研一下国产化工具开发的事&#xff0c;还要负责tb级…...

「SQL面试题库」 No_46 交换工资

&#x1f345; 1、专栏介绍 「SQL面试题库」是由 不是西红柿 发起&#xff0c;全员免费参与的SQL学习活动。我每天发布1道SQL面试真题&#xff0c;从简单到困难&#xff0c;涵盖所有SQL知识点&#xff0c;我敢保证只要做完这100道题&#xff0c;不仅能轻松搞定面试&#xff0…...

SLAM论文速递【SLAM—— RDS-SLAM:基于语义分割方法的实时动态SLAM—4.24(1)

论文信息 题目&#xff1a; RDS-SLAM:Real-Time Dynamic SLAM Using Semantic Segmentation Methods RDS-SLAM:基于语义分割方法的实时动态SLAM论文地址&#xff1a; https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber9318990发表期刊&#xff1a; IEEE Access ( Volum…...

OJ练习第82题——填充书架

填充书架 力扣链接&#xff1a;1105. 填充书架 题目描述 给定一个数组 books &#xff0c;其中 books[i] [thicknessi, heighti] 表示第 i 本书的厚度和高度。你也会得到一个整数 shelfWidth 。 按顺序 将这些书摆放到总宽度为 shelfWidth 的书架上。 先选几本书放在书架…...

OHOS IDE和SDK的安装方法

参照OpenHarmony应用开发环境安装流程&#xff0c;下载安装OHOS的IDE&#xff0c;过程中需要全程联网。 IDE&#xff0c;安装至D:\Tools\Huawei\DevEcoStudio。 IDE安装成功之后&#xff0c;按照提示下载安装HOS和OHOS的SDK。 nodejs&#xff0c;安装至D:\Tools\Huawei\nodejs…...

New Year Garland(计数类DP)

New Year Garland 题意 ​ 用m种颜色的球装饰n层的圣诞树&#xff0c;圣诞树的第i层由 l i l_{i} li​个彩球串成&#xff0c;且同一层相邻的球颜色不同&#xff0c;相邻的层之间彩球颜色的集合不同&#xff0c;问有多少种方案&#xff0c;对p取模。 分析 ​ 首先先计算每一…...

32岁阿里P7,把简历改成不知名小公司,学历改成普通本科,工作内容不变,投简历全挂!...

hr靠什么来招人&#xff1f; 一位猎头讲述了自己和朋友打赌的故事&#xff1a; 朋友在阿里云&#xff0c;32岁&#xff0c;P7&#xff0c;他把简历上的公司改成不知名&#xff0c;学历改成普通本科&#xff0c;工作内容不变&#xff0c;结果投其他公司&#xff08;比如京东&…...

从三室心脏MRI影像检测主动脉瓣病变

Detecting Aortic Valve Pathology from the 3-Chamber Cine Cardiac MRI View 摘要 背景 心脏磁共振(CMR)是量化心脏容量、功能和血流量的金标准。定制的MR脉冲序列定义了对比机制&#xff0c;采集几何形状和定时&#xff0c;可以在CMR期间应用&#xff0c;以实现独特的组织…...

【JavaWeb】JavaScript

1、JavaScript 介绍 Javascript 语言诞生主要是完成页面的数据验证。因此它运行在客户端&#xff0c;需要运行浏览器来解析执行 JavaScript 代码。 JS 是 Netscape 网景公司的产品&#xff0c;最早取名为 LiveScript;为了吸引更多 java 程序员。更名为 JavaScript。 JS 是弱…...

Apache Doris 1.2.4 Release 版本正式发布|版本通告

亲爱的社区小伙伴们&#xff0c;我们很高兴地宣布&#xff0c;Apache Doris 于 2023 年 4 月 27 日迎来 1.2.4 Release 版本的正式发布&#xff01;在 1.2.4 版本中&#xff0c;Doris 团队已经修复了自 1.2.3 版本发布以来近 150 个问题或性能改进项。同时&#xff0c;1.2.4 版…...

【C++STL】map

文章目录 一. map的介绍二. map的使用结束语 一. map的介绍 map是关联容器&#xff0c;它按照特定的次序&#xff08;按照key来比较&#xff09;存储由键值key和值value组合而成的元素在map中&#xff0c;键值key通常用于排序和唯一地标识元素&#xff0c;而value中存储与此键值…...

vue2项目PC端如何适配不同分辨率屏幕

项目构建&#xff1a;基于vue-cli3构建&#xff0c;使用postcss-px2rem px2rem-loader进行rem适配 实现原理&#xff1a;每次打包&#xff0c;webpack通过使用插件postcss-px2rem&#xff0c;帮我们自动将px单位转换成rem单位前方有坑&#xff1a;UI框架部分组件使用JavaScript…...

CorelDRAW2023最新版本图像设计软件

CorelDRAW 2023作为最新版的图像设计软件,在功能上做了较大提升,主要新的功能特性如下: 1. 全新界面设计:采用简约现代的 UI 设计,菜单和工具重新组织,更加直观易用。提供自动提示与设计指导,易于上手。 2. 智能工具与提示:运用 AI技术对用户操作行为和设计习惯进行分析,给出…...

第64章 树型结构数据的前端渲染渲染显示示例

1 \src\views\TreeTestView.vue <template> <div class"wrap"> <!--注意&#xff1a;1、“回到顶部”组件及其回滚内容都必须包含到同1个div容器中。--> <!-- 2、div容器中必须有1个唯1性的样式类&#xff08;例如&#xff1a;wrap&#xff09…...

超级国际象棋:第二个里程碑已完成

获取Cartesi资助的项目的最新进展&#xff0c;现在将完全去中心化的Web3国际象棋带到你的手中 “Ultrachess是一个完全基于区块链的国际象棋应用程序&#xff0c;由Cartesi Rollup技术支持&#xff0c;允许用户将真实价值投入到比赛中&#xff0c;不仅仅是他们的Elo分数。 此…...

vue3 HTML 和静态资源

目录 静态资源可以通过两种方式进行处理&#xff1a; URL 转换规则 public 文件夹 何时使用 public 文件夹 public/index.html 文件是一个会被 html-webpack-plugin 处理的模板。在构建过程中&#xff0c;资源链接会被自动注入。另外&#xff0c;Vue CLI 也会自动注入 re…...

5G基站外市电改造建设方案 (ppt可编辑)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除 外市电定义及分类 定义&#xff1a;由供电部门提供的专用高压电源或非专用高压电源或低压电源均称为市电。分类&#xff1a; &#xff08;1&#xff09;按电压等级分类 ①提供…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...