題目:給定乙個長度為n的整數陣列,只允許用乘法不允許用除法,計算n-1個數組合的乘積最大的一組,並寫出演算法的時間複雜度。
最直觀的解法o(n2)
public static int gettheexpectvaluenormal(int data)
}if(result < r)
}return data[index];
}
優化解法o(n)
public static int gettheexpectvalue(int data)
if(absmin == 0)else if((negativecount % 2 == 0) != (absmin > 0))else
}else
}
程式設計之美 子陣列的最大乘積
public class maxproduct for int a aa else 對應書上的解法1.空間換時間 public int maxproducta int a int n a.length int s new int n s 0 1 for int i 1 i n 1 i int t n...
程式設計之美 子陣列的最大乘積
問題 給定乙個長度為n的整數陣列,只允許用乘法,不能用除法,計算任意 n 1 個數的組合中乘積最大的一組,並寫出演算法的時間複雜度。解法一 用乙個陣列儲存從左邊到右邊前i個元素的乘積。用另乙個陣列儲存從右邊到左邊n i個元素的乘積。然後結果就為兩個陣列中元素對應的乘積,複雜度為o n 解法二 設n個...
程式設計之美2 13 子陣列最大乘積
問題描述 給定乙個長度為n的整數陣列,只允許用乘法,不能用除法,計算任意 n 1 個數的組合乘積中最大的一組,並寫出演算法的時間複雜度。解法 1.暴力解法 o n 2 2.前字尾法 o n 3.統計法 o n 具體思路和 1.暴力解法 思路 利用兩層迴圈,依次刪掉乙個,其餘的做乘法,計算出最大的。1...