题目描述
给定一个double类型的数组arr,其中的元素可正、可负、可0,返回子数组累乘的最大乘积。例如,arr=[-2.5, 4, 0, 3, 0.5, 8, -1],子数组[3, 0.5, 8]累乘可以获得最大的乘积12,所以返回12
[要求]
时间复杂度为O(n),空间复杂度为O(1)
输入描述:
第一行一个整数N。表示数组长度。
接下来一行N个浮点数表示数组内的数
输出描述:
输出一个浮点数表示答案,保留到小数点后两位
示例1
输入
7
-2.5 4 0 3 0.5 8 -1
输出
12.00
#include<iostream>
#include<vector>
#include <iomanip>
using namespace std;
int main(){
int N;
cin>>N;
vector<double> arr(N);
for(int i=0;i<N;i++){
cin>>arr[i];
}
double maxNum = arr[0], minNum = arr[0];
double ans = arr[0];
for(int i=1;i<N;+&#