编程——无序数组中找到最大乘积(python)
题目
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)
输入描述:
输入共2行,第一行包括一个整数n,表示数组长度
第二行为n个以空格隔开的整数,分别为A1,A2, … ,An
输出描述:
满足条件的最大乘积
示例:
输入:
4
3 4 1 2
输出:
24
思路
- 确定5个数,如果都是正数则,最大的是max1*max2*max3
- 如果有正有负,则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)相关推荐
- python求无序列表中位数_python 实现在无序数组中找到中位数方法
一.问题描述 1.求一个无序数组的中位数, (若数组是偶数,则中位数是指中间两个数字之和除以2,若数组是奇数,则中位数是指最中间位置.要求:不能使用排序,时间复杂度尽量低 2.例如:lists = [ ...
- 无序数组中找第K大的数
类快排算法 leetcode215 由于只要求找出第k大的数,没必要将数组中所有值都排序. 典型解法:快速排序分组. 在数组中找到第k大的元素 取基准元素,将元素分为两个集合,一个集合元素比基准小,另 ...
- 每天一道LeetCode-----在给定数组中找到一个子数组,使得这个子数组的元素乘积最大
Maximum Product Subarray 原题链接Maximum Product Subarray 在给定数组中找到一个子数组,使得这个子数组元素的乘积最大.给定数组中可能有正数,负数和0 思 ...
- 【算法】数组与矩阵问题——找到无序数组中最小的k个数
1 /** 2 * 找到无序数组中最小的k个数 时间复杂度O(Nlogk) 3 * 过程: 4 * 1.一直维护一个有k个数的大根堆,这个堆代表目前选出来的k个最小的数 5 * 在堆里的k个元素中堆顶 ...
- python:无序数组中寻找第K大的元素
题目: 所谓"第(前)k大数问题"指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题. 解法1:堆排序 采用元素下沉法,维护一个k大小的最小堆, ...
- 找出无序数组中最小的k个数(top k问题)
2019独角兽企业重金招聘Python工程师标准>>> 给定一个无序的整型数组arr,找到其中最小的k个数 该题是互联网面试中十分高频的一道题,如果用普通的排序算法,排序之后自然可以 ...
- 快速查找无序数组中的第K大数?
1.题目分析: 查找无序数组中的第K大数,直观感觉便是先排好序再找到下标为K-1的元素,时间复杂度O(NlgN).在此,我们想探索是否存在时间复杂度 < O(NlgN),而且近似等于O(N)的高 ...
- 小米笔试题:无序数组中最小的k个数
题目描述 链接:https://www.nowcoder.com/questionTerminal/ec2575fb877d41c9a33d9bab2694ba47?source=relative 来 ...
- 如何在1到100的整数数组中找到缺失的数字
有关编程面试的最常见问题之一就是:编写一个程序,用Java或任何其他语言查找数组中缺少的数字; 这种不仅在小型初创企业中被问到,而且还在谷歌,亚马逊,脸谱,微软等一些最大的技术公司中提出,主要是当他们 ...
最新文章
- html页面引入另一个html页面
- C# MD5加密工具方法
- keras 模型简介
- MYSQL 5.6安装设置中英文翻译
- 不要在脱离这个市场的情况下讨论商业模式
- lisp 线性标注自动避让_CAD局部放大图如何标注对应的尺寸,才能保持尺寸值不变...
- 前端基础-html-表格的标题和表头单元格标签
- mybatis 一对一、一对多查询、多对多(使用注解)
- matlab libjli.so,error while loading shared libraries: libjli.so 问题解决
- 神州微型计算机,神舟笔记本序列号查维修-怎样根据神舟笔记本电脑的序列号查询...
- 【AI视野·今日NLP 自然语言处理论文速览 第三十三期】Thu, 21 Apr 2022
- Java算法之 循序搜寻法
- 东方财富一面、二面总结(二面凉)
- 后处理SSAO,双边模糊
- 程序员必备下载器——IDM,下载速度超快!
- 如何实现使用三点新建坐标系
- [BZOJ1787][Ahoi2008]Meet 紧急集合
- 的修报修系统是什么?的修报修系统好不好用?
- SMBUS的介绍与访问
- 使用高防服务器的好处