このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題文について説明する。
中国北部では豪雪で苦労している。豪雪により、中国の南北を結ぶ重要な高速道路が閉鎖された。あなたは豪雪に覆われた高速道路の地域の始点と終点についていくつかの報告を受けた。始点と終点が整数型の配列として与えられたとき、雪で覆われた道路の距離の合計を返すメソッドを作成せよ。なお、報告では領域が重複していることもあることに注意せよ。
私の解答はこちら。
public class SnowyWinter {
public int snowyHighwayLength(int[] startPoints, int[] endPoints) {
int size = 10000;
boolean[] isCoveredSnow = new boolean[size]; // trueの数が雪で覆われた道路の距離になる
for( int i=0 ; i<startPoints.length ; i++ ){
for( int j=startPoints[i] ; j < endPoints[i] ; j++ ){
isCoveredSnow[j] = true; // 雪で覆われている領域とする
}
}
int len = 0;
for( int i=0 ; i<size ; i++ ){
if( isCoveredSnow[i] ) len++;
}
return len;
}
}
得点は244.48/250、1回のsubmitでシステムテストクリア。条件で与えられているサイズの上限を与えずに解けると文句なしなのですがね。

0 件のコメント:
コメントを投稿