問題:http://www.topcoder.com/stat?c=problem_statement&pm=11118(要ログイン)
プラクティス.
ワインセラーがあって,あるワインの時間を進めて熟成させることができるが,代わりに他のワインの時間を戻さなければならない.それぞれのワインにおける進められる時間と戻さなければならない時間が与えられるので,進められる時間と戻さなければならない時間の差が最大となるような二つのワインを定め,その値を求める.
単純に差の最大をとればいいのに本番ではそれぞれの最大値と最小値がどーのこーのとかいう変なことをして落とした.単純にそれぞれの差の比較すればよかった.
コード
public class TimeTravellingCellar { public int determineProfit(int[] profit, int[] decay) { int max = 0, n = profit.length; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (i != j) { max = Math.max(max, profit[i] - decay[j]); } } } return max; } }