ソートして頭から2つずつマージしていけば良いらしい。
本番では、メモ化した。スピード勝負に大敗北した。悲しい。
本当に貪欲かどうか決めかねる問題でDPかメモ化するのは、慎重な選択肢としてありだと思うけど、
それを判断するタイミングってのをよくよく学ばないといけないなー。
class MergersDivOne {
public:
double findMaximum(vector <int> R) {
sort(R.begin(), R.end());
double ret = R[0];
for (int i = 1; i < R.size(); ++i) {
ret = (R[i] + ret) / 2.0;
}
return ret;
}
};
0 件のコメント :
コメントを投稿