【发布时间】:2011-05-12 06:08:35
【问题描述】:
我想出了下面的代码,但并不满足所有情况,例如:
由全 0 组成的数组
-
具有负值的数组(这有点棘手,因为它是关于寻找产品,因为两个负整数给出正值)
public static int LargestProduct(int[] arr) { //returning arr[0] if it has only one element if (arr.Length == 1) return arr[0]; int product = 1; int maxProduct = Int32.MinValue; for (int i = 0; i < arr.Length; i++) { //this block store the largest product so far when it finds 0 if (arr[i] == 0) { if (maxProduct < product) { maxProduct = product; } product = 1; } else { product *= arr[i]; } } if (maxProduct > product) return maxProduct; else return product; }
如何合并上述案例/更正代码。请提出建议。
【问题讨论】: