999.车的可用捕获量
非常不好的题目,代码长思路简单,傻瓜式解法,高赞题解也都是傻瓜式解法
class Solution:
def numRookCaptures(self, board: List[List[str]]) -> int:
for row in range(8):
for col in range(8):
if board[row][col] == 'R':
row_index,col_index = row ,col
break
ans = 0
meet_pawn,meet_rook = 0,0
for i in range(8):
if board[row_index][i] == 'p':
meet_pawn = 1
if meet_rook == 1:
ans += 1
break
elif board[row_index][i] == 'R':
meet_rook = 1
if meet_pawn == 1:
ans +=1
elif board[row_index][i] == 'B':
if meet_rook == 0:
meet_pawn = 0
else:break
meet_pawn,meet_rook = 0,0
for j in range(8):
if board[j][col_index] == 'p':
meet_pawn = 1
if meet_rook == 1:
ans += 1
break
elif board[j][col_index] == 'R':
meet_rook = 1
if meet_pawn == 1:
ans +=1
elif board[j][col_index] == 'B':
if meet_rook == 0:
meet_pawn = 0
else:break
return ans
118.杨辉三角
要逐渐习惯正则表达式呀,确实比一般写法简单
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
ans = []
for row in range(numRows):
cur_row = [1 for _ in range(row + 1)]
for col in range(1, row):
cur_row[col] = ans[row-1][col-1] + ans[row-1][col]
ans.append(cur_row)
return ans
1200.最小绝对差
没什么特别方法,排序后遍历一遍就可
class Solution:
def minimumAbsDifference(self, arr: List[int]) -> List[List[int]]:
arr.sort()
ans = []
pre_num ,min_abstract = arr[0],float('inf')
for num in arr[1:]:
if num - pre_num < min_abstract:
min_abstract = num - pre_num
ans = []
ans.append([<