プレート上の軍艦。質問の意味は、点及びXを含む2次元配列を、与えることです 判決は、いくつかの軍艦を持っています。船が水平または直および任意に2隻の間に少なくとも1回のセル間隔でなければならない定義されています。アイデアは、軍艦の出発点を見つけるために、入力後にトラバースすることです。いわゆる軍艦出発点はX.ことができないXを指し、この点と点の左側にすることです 船が隣接していてもよい場合は、裁判官がより困難になるため、この問題は、実際には比較的簡単です。
時間はO(n ^ 2)
スペースO(1)
1 / * * 2 * @param {文字は[] []}ボード 3 * @return {数} 4 * / 5 のvar countBattleships = 関数(ボード){ 6 LET M = board.length。 7 場合(Mは=== 0)戻り 0 ; 8 せ、N =ボード[0 ] .LENGTH。 9 のRES = 0を聞かせて、 10 のための(I = 0せ; iがm <; iは++ ){ 11 のため(LET J = 0であり、j <N; J ++ ){ 12 であれば( ''ボードは、[I] [J] ===)を続けます; 13 もし(I> 0 &&ボード[I - 1]〜[J] === 'X')を続けます。 14 であれば(J> 0 &&ボード[I]、[J - 1] === 'X')続けます。 15の 解像度++ ; 16 } 17 } 18の リターンRES。 19 }。