题目

给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)

输入描述:

输入共2行,第一行包括一个整数n,表示数组长度
第二行为n个以空格隔开的整数,分别为A1,A2, … ,An

输出描述:

满足条件的最大乘积

示例:

输入:

4

3 4 1 2

输出:

24


思路

  1. 确定5个数,如果都是正数则,最大的是max1*max2*max3
  2. 如果有正有负,则max1*min1*min2

源码

num_ele=int(raw_input())
input_array = list(map(int,raw_input().split(" ")))
max1,max2,max3=float("-inf"),float("-inf"),float("-inf")
min1,min2=float("inf"),float("inf")
index=0
while num_ele>0:cur_num=input_array[index]if cur_num>max1:max3=max2max2=max1max1=cur_numelif cur_num>max2:max3=max2max2=cur_numelif cur_num>max3:max3=cur_numif cur_num<min1:min2=min1min1=cur_numelif cur_num<min2:min2=cur_numindex+=1num_ele-=1
print(max(min1*min2*max1,max1*max2*max3))

编程——无序数组中找到最大乘积(python)相关推荐

  1. python求无序列表中位数_python 实现在无序数组中找到中位数方法

    一.问题描述 1.求一个无序数组的中位数, (若数组是偶数,则中位数是指中间两个数字之和除以2,若数组是奇数,则中位数是指最中间位置.要求:不能使用排序,时间复杂度尽量低 2.例如:lists = [ ...

  2. 无序数组中找第K大的数

    类快排算法 leetcode215 由于只要求找出第k大的数,没必要将数组中所有值都排序. 典型解法:快速排序分组. 在数组中找到第k大的元素 取基准元素,将元素分为两个集合,一个集合元素比基准小,另 ...

  3. 每天一道LeetCode-----在给定数组中找到一个子数组,使得这个子数组的元素乘积最大

    Maximum Product Subarray 原题链接Maximum Product Subarray 在给定数组中找到一个子数组,使得这个子数组元素的乘积最大.给定数组中可能有正数,负数和0 思 ...

  4. 【算法】数组与矩阵问题——找到无序数组中最小的k个数

    1 /** 2 * 找到无序数组中最小的k个数 时间复杂度O(Nlogk) 3 * 过程: 4 * 1.一直维护一个有k个数的大根堆,这个堆代表目前选出来的k个最小的数 5 * 在堆里的k个元素中堆顶 ...

  5. python:无序数组中寻找第K大的元素

    题目: 所谓"第(前)k大数问题"指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题. 解法1:堆排序 采用元素下沉法,维护一个k大小的最小堆, ...

  6. 找出无序数组中最小的k个数(top k问题)

    2019独角兽企业重金招聘Python工程师标准>>> 给定一个无序的整型数组arr,找到其中最小的k个数 该题是互联网面试中十分高频的一道题,如果用普通的排序算法,排序之后自然可以 ...

  7. 快速查找无序数组中的第K大数?

    1.题目分析: 查找无序数组中的第K大数,直观感觉便是先排好序再找到下标为K-1的元素,时间复杂度O(NlgN).在此,我们想探索是否存在时间复杂度 < O(NlgN),而且近似等于O(N)的高 ...

  8. 小米笔试题:无序数组中最小的k个数

    题目描述 链接:https://www.nowcoder.com/questionTerminal/ec2575fb877d41c9a33d9bab2694ba47?source=relative 来 ...

  9. 如何在1到100的整数数组中找到缺失的数字

    有关编程面试的最常见问题之一就是:编写一个程序,用Java或任何其他语言查找数组中缺少的数字; 这种不仅在小型初创企业中被问到,而且还在谷歌,亚马逊,脸谱,微软等一些最大的技术公司中提出,主要是当他们 ...

最新文章

  1. html页面引入另一个html页面
  2. C# MD5加密工具方法
  3. keras 模型简介
  4. MYSQL 5.6安装设置中英文翻译
  5. 不要在脱离这个市场的情况下讨论商业模式
  6. lisp 线性标注自动避让_CAD局部放大图如何标注对应的尺寸,才能保持尺寸值不变...
  7. 前端基础-html-表格的标题和表头单元格标签
  8. mybatis 一对一、一对多查询、多对多(使用注解)
  9. matlab libjli.so,error while loading shared libraries: libjli.so 问题解决
  10. 神州微型计算机,神舟笔记本序列号查维修-怎样根据神舟笔记本电脑的序列号查询...
  11. 【AI视野·今日NLP 自然语言处理论文速览 第三十三期】Thu, 21 Apr 2022
  12. Java算法之 循序搜寻法
  13. 东方财富一面、二面总结(二面凉)
  14. 后处理SSAO,双边模糊
  15. 程序员必备下载器——IDM,下载速度超快!
  16. 如何实现使用三点新建坐标系
  17. [BZOJ1787][Ahoi2008]Meet 紧急集合
  18. 的修报修系统是什么?的修报修系统好不好用?
  19. SMBUS的介绍与访问
  20. 使用高防服务器的好处

热门文章

  1. 一文看懂模糊搜索1.0到3.0的算法迭代历程
  2. 《请不要回应外星人2019》
  3. 马云:你改变不了特朗普,你连你妈都改变不了,你要改变你自己
  4. 美团是怎么玩儿AI的?今晚8点揭秘美团超大规模知识图谱--美团大脑
  5. 2018机器阅读理解技术竞赛,奇点机智获第一名
  6. 如何写出一手好的业务代码?
  7. 面进了心心念念的国企!以为TM上岸了!干了1年!我却再次选择回到互联网大厂内卷!
  8. Sentinel实现限流,竟是如此的简单!
  9. Nginx 为什么这么快?
  10. Spring Boot 2.3.0 新特性:优雅停机!