3回くらい描き直した。
class MeasuringTemperature { public: double averageTemperature(vector <int> v) { double sum = 0; double cnt = 0; bool valid[v.size()]; for(int i=0; i<v.size(); ++i){ valid[i] = -273 <= v[i]; } for(int i=0; i<v.size(); ++i){ bool flg = false; for(int j=-2; j<=2; ++j){ if(i + j < 0)continue; if(v.size() <= i + j)continue; if(j)flg = flg || abs(v[i] - v[i+j]) <= 2; } valid[i] = valid[i] && flg; } for(int i=0; i<v.size(); ++i){ if( !valid[i] )continue; ++cnt; sum += v[i]; } return cnt == 0 ? -300 : sum / cnt; } };500
整数値で比較するところを、何故か文字列に変換して+='0'と+='9'して比較してた。
700 < 1000 , "700" > "1000" だろうに。
class InputBoxChecker { public: bool check(lli mn, lli mx, lli num){ lli n, m; n = m = num; while(n <= mx){ if(mn <= m && n <= mx)return true; n = n * 10LL; m = m * 10LL + 9LL; } return false; } vector <string> checkPrefix(int s, int l, vector <int> num) { vector <string> r; for(int i=0; i<num.size(); ++i){ r.push_back( check(s, l, num[i]) ? "VALID" : "INVALID" ); } return r; } };1000
読んでない。
0 件のコメント :
コメントを投稿