标签:style blog color for div 时间 算法 log
给定一个长度为N的整数数组,只允许用乘法不允许用除法,计算N-1个数组合的乘积最大的一组,并写出算法的时间复杂度。
long long s[MAXN]; long long t[MAXN]; int main() { int n, i; cin >> n; for (i=1; i<=n; i++) cin >> A[i]; // 从前往后用叠乘法 s[0] = 1; for (i=1; i<n; i++) s[i]=A[i]*s[i-1]; // 从后往前用叠乘法 t[n+1] = 1; for (i=n; i>1; i--) t[i]=A[i]*t[i+1]; // 计算出n-1个n-1数连乘 for (i=0; i<=n-1; i++) s[i] = s[i]*t[i+2]; long long maximum = s[0]; // 获取其中的最大值 for (i=1; i<=n-1; i++) maximum = max(maximum, s[i]); cout << maximum << endl; }
标签:style blog color for div 时间 算法 log
原文地址:http://www.cnblogs.com/notlate/p/3901174.html