【简单】999. 车的可用捕获量
程序员文章站
2024-01-22 11:06:46
...
链接
题目描述
思路
首先找到 车
的位置。
然后上下左右
四个方向搜索:
- 如果遇见
象
,结束搜索 - 如果遇见
卒
,num++
,结束搜索 - 如果超出边界,结束搜索
1.代码
class Solution {
public int numRookCaptures(char[][] board) {
//找到'R'的位置board[row][col]
int row = 0;
int col = 0;
for(int i = 0; i < board.length ;i++){
for(int j = 0; j < board[0].length ;j++){
if(board[i][j] == 'R'){
row = i;
col = j;
}
}
}
int num = 0;
int i = row;
int j = col;
while(j < board.length){
if(board[i][j] == 'p'){
num++;
break;
}
if(board[i][j] == 'B'){
break;
}
j++;
}
i = row;
j = col;
while(j >= 0){
if(board[i][j] == 'p'){
num++;
break;
}
if(board[i][j] == 'B'){
break;
}
j--;
}
i = row;
j = col;
while(i >= 0){
if(board[i][j] == 'p'){
num++;
break;
}
if(board[i][j] == 'B'){
break;
}
i--;
}
i = row;
j = col;
while(i < board.length){
if(board[i][j] == 'p'){
num++;
break;
}
if(board[i][j] == 'B'){
break;
}
i++;
}
return num;
}
}
2.复杂度分析
时间复杂度:O(N^2)
空间复杂度:O(1)
上一篇: TensorFlow 手写数字识别
下一篇: 微信、支付宝、银联开发遇到的那些坑