I [1] Hackerrankにこの問題を解決しています:https://www.hackerrank.com/challenges/gridland-metroGridlandメトロHackerrankジャワ
Gridlandの都市は、行が1からnまで番号付けされているMによってN行列として表されますであり、列には1からmという番号が付けられています。
グリッドランドには、常に列に沿って直線の水平線で走る列車のネットワークがあります。換言すれば、列車のトラックの開始点と終了点は、RはC1が開始列、およびC2を表し、行番号を表す(R、C1)及び(R、C2)、ありますは列車の終了列を表す。
市長が都市を調査して、街灯柱を配置できる場所の数を決定しています。電柱は電車のトラックで占められていないセルに配置できます。 GridlandとそのK列車のトラックのマップを考えると
、市長が街灯柱を配置することができ、細胞の数を見つけて印刷します。
注:列車のトラックは、同じ列内の他の列車のトラックと重複する場合もあれば、重ならない場合もあります。
入力形式
最初の行は、Nのそれぞれの値を記述する3スペースで区切られた整数(行数)、メートル(列の数)を、含まk(列車のトラック数)。 各行iはK後続の行の列車軌道を定義R、C1、とC2のそれぞれの値を記述する3スペースで区切られた整数を含みます。
市長がランプポストをインストールできるセルの数を示す単一の整数を出力します。ここで
は私のソリューションです:
import java.io. * ;
import java.util. * ;
public class Solution {
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
Scanner input = new Scanner(System. in);
int n = input.nextInt();
int m = input.nextInt();
int k = input.nextInt();
int[][] arr = new int[n][m];
int occupied = 0;
for (int i = 0; i < n; i++) {
Arrays.fill(arr[i], 0);
}
for (int i = 0; i < k; i++) {
int r = input.nextInt() - 1;
int c1 = input.nextInt() - 1;
int c2 = input.nextInt() - 1;
for (int j = c1; j <= c2; j++) {
arr[r][j] = -1;
}
}
int count = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (arr[i][j] != -1) {
count++;
}
}
}
System.out.println(count);
}
}
誰もが私のコードで問題を指摘することはできますか? (提出時に4つのテストケースを渡すだけです)
http://stackoverflow.com/questions/39683853/count-the-cells-which-are-not-visited-in-matrix-in-java –