博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二十八章续:任意(N-1)个数的组合中乘积最大的一组
阅读量:4135 次
发布时间:2019-05-25

本文共 677 字,大约阅读时间需要 2 分钟。

题目描述:

给定一个长度为N的整数数组,只允许用乘法,不能用除法,计算任意(N-1)个数的组合中乘积最大的一组,并写出算法的时间复杂度。

#include 
#include
#include
using namespace std; /*给定一个长度为N的整数数组,只允许用乘法,不能用除法,计算任意(N-1)个数的组合中乘积最大的一组,并写出算法的时间复杂度。*//*方法1:s[i]表示0到i-1乘积,t[i]表示i+1到n乘积,有Max={s[i]*t[i]}*/long caculate(int arr[],int length){ long maxV=LONG_MIN; long *s=new long[length+1]; long *t=new long[length+1]; s[0]=1,t[length-1]=1; for(int i=1;i<=length;++i) s[i]=s[i-1]*arr[i-1]; for(int i=length-2;i>=0;--i){ t[i]=t[i+1]*arr[i+1]; } for(int i=0;i
0){opt++;minO=min(minO,arr[i]);} else zero++; } if(zero>1)return 0; //1个0的情况 if(zero==1){ if(neg&1)return 0;//奇数个负数 else{ for(int i=0;i

转载地址:http://qbvvi.baihongyu.com/

你可能感兴趣的文章