LeetCode999 車的可用捕獲量

2021-09-12 13:44:57 字數 690 閱讀 4493

解析:

我想到的是一種比較笨的方法,首先遍歷找出車的位置,然後分別在同列向上,同列向下,同行向左,同行向右遍歷查詢遇到的第乙個非空位置,如果是p則加一,遍歷結束;如果是b,則遍歷結束。最後得出結果。不知道有沒有更好的方法,總感覺自己的方法太笨了,又想不出好的方法。

**:

int numrookcaptures(vector>& board) 

} if (j < 8)

break;

} int numofp = 0;

for (int i = rx; i >= 0; i--)//同列向上

else if (board[i][ry] == 'b')

break;

} for (int i = rx; i < 8; i++)//同列向下

else if (board[i][ry] == 'b')

break;

} for (int j = ry; j >= 0; j--)//同行向左

else if (board[rx][j] == 'b')

break;

} for (int j = ry; j < 8; j++)//同行向右

else if (board[rx][j] == 'b')

break;

} return numofp;

}

LeetCode 999 車的可用捕獲量

題目 在乙個 8 x 8 的棋盤上,有乙個白色車 rook 也可能有空方塊,白色的象 bishop 和黑色的卒 pawn 它們分別以字元 r b 和 p 給出。大寫字元表示白棋,小寫字元表示黑棋。車按西洋棋中的規則移動 它選擇四個基本方向中的乙個 北,東,西和南 然後朝那個方向移動,直到它選擇停止 ...

LeetCode 999 車的可用捕獲量

999.車的可用捕獲量 在乙個 8 x 8 的棋盤上,有乙個白色車 rook 也可能有空方塊,白色的象 bishop 和黑色的卒 pawn 它們分別以字元 r b 和 p 給出。大寫字元表示白棋,小寫字元表示黑棋。車按西洋棋中的規則移動 它選擇四個基本方向中的乙個 北,東,西和南 然後朝那個方向移動...

999 車的可用捕獲量

解題思路 1.先先找到r所在的位置,即獲取r所在行列座標 2.根據r所在行向左查詢p,如果遇到b,則結束。如果查詢到p則計數器加1,並結束 3.根據r所在行向右查詢p,如果遇到b,則結束。如果查詢到p則計數器加1,並結束 4.根據r所在行向上查詢p,如果遇到b,則結束。如果查詢到p則計數器加1,並結...