水题 LeetCode-999 车的可用捕获量
题目链接:LeetCode-999
题目大意:有一个车只能上下左右行走 问车可以吃到多少的卒 题中有障碍物象
解题思路:将每次移动的方向存储进数组 然后找到车的位置 以车的位置为起点进行计算
代码块:
class Solution {
public int numRookCaptures(char[][] board) {
int[][] arr = { { 0, 1 }, { 1, 0 }, { 0, -1 }, { -1, 0 } };
//先找到车的位置
int dx=0,dy=0;
outer:
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
if(board[i][j] == 'R'){
dx = i;
dy = j;
break outer;
}
}
}
int sum = 0;
for(int i=0;i<4;i++){
int ddx = dx;
int ddy = dy;
while((ddx>=0 && ddx<8)&&(ddy>=0 && ddy<8) && board[ddx][ddy]!='B'){
if(board[ddx][ddy] == 'p'){
sum++;
break;
}
ddx+=arr[i][0];
ddy+=arr[i][1];
}
}
return sum;
}
}