628. Maximum Product of Three Numbers

每日一题算法:2020.05.18乘积最大子数组maxProduct 2020.05.18乘积最大子数组 class Solution { public int maxProduct(int[] nums) { } } 思路: 第一种做法肯定是包暴力解决,和上次一样,时间复杂度是n^2,但是这次肯定不能和上次一样,应该有一些进步才行。 首先要想好数据结构 有一个算法推算的过程 我们要计算的值是子数组的积,那么这个子数组能够记为p(n-m),我们要计算p(n-m)的最大值,我们先看一下p(n-m)有什么关系存在 p(n-m)=pm/pn p() 做不出,还 阅读详情

题目:

Given an integer array, find three numbers whose product is maximum and output the maximum product.

Example 1:

Input: [1,2,3]
Output: 6

Example 2:

Input: [1,2,3,4]
Output: 24

Note:

  1. The length of the given array will be in range [3,104] and all elements are in the range [-1000, 1000].
  2. Multiplication of any three numbers in the input won't exceed the range of 32-bit signed integer.

题目意思:

找出数组的三个数,使得这三个数的乘积达到最大;

思路:

我一开始的思想是先遍历一遍,找到最大值max。然后2个for循环找另2个数乘积最大值 time o(n^2)结果超时;

然后想o(n)的解,还是先遍历一遍,找最大值max.然后在遍历一遍 设2个max2,max1,2个min1,min2找出最大的两个值和最小的两个值(不包括max值)

代码:time 0(n) space O(1)

class Solution {
public:
    int summax(int a,int b){
        return a>b?a:b;
    }
    int maximumProduct(vector<int>& nums) {
        int len=nums.size();
        if(len<=0) return 0;
        if(len<=3){
            int maximum=1;
            for(int i=0;i<len;i++){
                maximum*=nums[i];
            }
            return maximum;
        }
        int max=-1001,indexmax=0,max2=-1001,max3=-1001;
        int min1=1001,min2=1001;
        for(int i=0;i<len;i++){
            if(nums[i]>max){
                max = nums[i];
                indexmax = i;
                }
        }
        for(int i=0;i<len;i++){
            if(i==indexmax)
                continue;
            if(nums[i]<min1){
                min2=min1;
                min1=nums[i];
            }
            else if(nums[i]<min2)
                min2=nums[i];

            if(nums[i]>max2){
                max3=max2;
                max2=nums[i];
                }
            else if(nums[i]>max3)
                max3=nums[i];    
        }
        return summax(max*max2*max3,min1*min2*max);
    }
};


ADBMS1818芯片  可测量多达18串电池电压 3 mV最大总测量误差 内置isoSPI接口 使用单根双绞线,长达100米 290 μs内可完成系统中所有单体电池电压测量。 阅读详情

相关推荐

软件项目质量管理

识别项目中涉及质量管理的不同角色,如项目经理、质量经理、测试人员等,明确每个角色的职责和任务,包括负责哪些质量管理活动和决策。1、编制软件项目的质量管理计划,包括确定项目的质量标准和要求,以及制定质量控制和质量保证策略等。2、编制软件项目的质量管理计划,包括确定项目的质量标准和要求,以及制定质量控制和质量保证策略等。测试用例表是质量控制过程中的关键工具,确保所有功能和场景都被验证,减少项目中的缺陷。1、理解项目质量管理的基本过程,包括质量计划、质量保证、质量控制和质量改进;明确质量管理活动中的角色和职责。

weixin_51996255的博客 1258

php imageloadfont,php – 在imageloadfont中给出font参数时出错

我正在使用imageloadfont函数来创建动态图像.我将AARDV.TTF字体文件作为imageloadfont文件中的参数.在我使用的代码下面:$im = imagecreatetruecolor(750,600);$title = imagecolorallocate($im, 255, 240, 255);$font = imageloadfont(JPATH_SITE.'/compon...

weixin_42364681的博客 488

UVM(5)-TLM通信

TLM是一种基于事务 (transaction) 的通信方式,通常在高抽象级语言例如SystemC或者SV/UVM中作为模块之间的通讯方式。

2301_76431006的博客 2106

【机器学习系列】概率图模型第五讲:Max-Product算法

作者:CHEONG 公众号:AI机器学习与知识图谱 研究方向:自然语言处理与知识图谱 阅读本文之前,先注意一下两点: 1、机器学习系列文章常含有大量公式推导证明,为了更好理解,文章在最开始会给出本文的重要结论,方便最快速度理解本文核心。需要进一步了解推导细节可继续往后看 2、文中含有大量公式,若读者需要获取含公式原稿Word文档,可关注公众号【AI机器学习与知识图谱】后回复:概率图模型第五讲,可添加微信号【17865190919】进公众号讨论群,加好友时备注来自优快云。原创不易,转载请告知并注明出...

【AI机器学习与知识图谱】的博客 1373

[仿真实战]FDTD Solutions 8.0:从零搭建薄膜光谱分析模型

本文提供了一份基于FDTD Solutions 8.0的薄膜光谱分析模型从零搭建实战指南。通过详细步骤,手把手教你创建玻璃基底与硅薄膜的几何结构、设置仿真区域与边界条件、配置光源与监视器,并最终计算反射率与透射率光谱。内容涵盖参数扫描与优化,旨在帮助用户快速掌握FDTD仿真在纳米光子学与薄膜光学设计中的核心应用。

defi6farmer的博客 499

【Qt-4】QT基于qhttp-server搭建http服务器

QT搭建http服务器

WXG1011的博客 5712

最大乘积(Maximum Product)

Maximum Product Time Limit:3000MS   Memory Limit:Unknown   64bit IO Format:%lld & %llu Submit  Status Description Problem D - Maximum Product Time Limit: 1 second Give

梦空间 699

【重磅干货】介质损耗因数(tanδ)揭秘:如何精准定位材料劣化最严重的温度?附权威研究PDF!

是评估绝缘材料性能的核心指标,能直接反映材料内部能量损耗和微观结构变化。通过分析tanδ-温度曲线的峰值点,可精准定位材料劣化最严重的温度。:极化损耗峰值的温度点(如环氧树脂的80℃)是材料性能拐点,需重点关注!:图3对比了5种材料的tanδ-温度曲线,峰值温度差异高达50℃!在电力设备、电子元器件等领域,材料的老化与温度密切相关。:[《介质损耗峰值温度在设备寿命预测中的应用》]在不同温度下测量tanδ,绘制曲线图。:[《多材料介质损耗峰值温度对比研究》]:基于tanδ峰值温度开发的。

mubiao05的博客 1350

[leetcode] 628. Maximum Product of Three Numbers

Description Given an integer array, find three numbers whose product is maximum and output the maximum product. Example 1: Input: [1,2,3] Output: 6 Example 2: Input: [1,2,3,4] Output: 24 Note: The ...

Learning from the mistakes 220

H.264 入门篇 - 09 (帧间预测 - 参考帧列表)

短期和长期的关系和区别:在一个解码器中的 DPB(参考帧缓存)大小总是有限的,所以引入一个问题,什么样的参考帧会被保存到 DPB 中,什么样的参考帧会被移除出去,因此将分为长期和短期参考帧,所谓短期参考帧是这帧不会长期驻留在DPB中,如果参考帧缓存已满或者有其他特定的条件,那么短期参考帧就会被从DPB中移除;与之相对的长期参考帧,只要没有遇到某个指定的条件,遇到某个IDR帧, 遇到了清空整个DPB的指令等等,那么长期参考帧会长期在DPB中,不会因为有新的参考帧而被冲刷掉;(P帧是按照编码顺序)

StephenZhou 5103

RK平台MPP编解码实战:从源码编译到性能测试全解析

本文详细解析了在RK(瑞芯微)平台上进行MPP(Media Process Platform)多媒体编解码实战的全过程。从源码获取、交叉编译环境搭建、常见编译问题排查,到测试程序的修改调试与性能测试分析,提供了从零到一的完整指南。文章通过实测数据展示了MPP硬件编解码在嵌入式设备上的高性能与低功耗优势,帮助开发者快速掌握这一关键技术,应用于智能摄像头、视频会议终端等产品开发。

weixin_28273593的博客 544

628. Maximum Product of Three Numbers*

628. Maximum Product of Three Numbers* https://leetcode.com/problems/maximum-product-of-three-numbers/ 题目描述 Given an integer array, find three numbers whose product is maximum and output the maximum p...

珍妮的选择的博客 324

Android 15.0 系统开机屏幕设置默认横屏显示

在15.0的系统ROM产品定制化开发中,对于产品需求来说,由于是宽屏设备所以产品需要开机默认横屏显示,开机横屏显示这就需要从 两部分来实现,一部分是系统开机动画横屏显示,另一部分是系统屏幕显示横屏显示,从这两方面就可以做到开机默认横屏显示了

安卓兼职framework和app工程师的博客 719

LeetCode 628. Maximum Product of Three Numbers

Maximum Product of Three Numbers 题目描述: Given an integer array, find three numbers whose product is maximum and output the maximum product. Example 1: Input: [1,2,3] Output: 6 Example 2:

i逆天耗子 694

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【java】628. Maximum Product of Three Numbers

问题原文点击打开链接先对这道题进行排序,然后排序前三的整数相乘。但是要考虑两种特殊情况,第一是数组里面包含负整数的情况,第二种是前三里面包含0的情况。分开讨论问题就很简单了。public void intiHeap(int[] nums,int length,int parent){ int val = nums[parent]; int child = 2*par...

amber804105的博客 277

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Leetcode】628. Maximum Product of Three Numbers

628. Maximum Product of Three Numbers Given an integer array, find three numbers whose product is maximum and output the maximum product. Example 1: Input: [1,2,3] Output: 6 Example 2: Input: [1,2,3,...

蒋志碧的博客 445

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

leetcode628. Maximum Product of Three Numbers

628. Maximum Product of Three NumbersGiven an integer array, find three numbers whose product is maximum and output the maximum product.Example 1: Input: [1,2,3] Output: 6 Example 2: Input: [1,2,3,4] O

rxt2012kc的博客 1325

[LeetCode]628. Maximum Product of Three Numbers

[LeetCode]628. Maximum Product of Three Numbers题目描述思路简单的做法,扫描一次即可,维护两个最小值和三个最大值看到这个题目,想起一道面试题,一个无法载入内存的数组,从中选n个最大的数 解法,建立一个小根堆,限定元素个数为n,每次插入一个新元素后弹出堆顶元素,扫描一次,堆中的n个元素即为n个最大的数。这道题思路可以借鉴这种方式,顺便回顾一下调整堆的方法

Lcharon的博客 562

628. Maximum Product of Three Numbers的C++解法

牵扯到有负数就变得很麻烦,为了不分析那么多可能的情况我选择找出三个最大的正数和三个最小的负数然后遍历这六个数字的所有三种情况的组合找出最大的那个。 class Solution { public: int maximumProduct(vector& nums) { if (nums.size() == 3) return nums[0] * nums[1] * nums[2]; in

MuseCP@YenTown 793

LeetCode //C - 628. Maximum Product of Three Numbers

【代码】LeetCode //C - 628. Maximum Product of Three Numbers。

Made in Code 1195
上一篇: 162. Find Peak Element
下一篇: 27. Remove Element
Mike_CSU
博客等级 码龄10年 6粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值