1. 單詞搜尋
給定一個 m x n 二維字元網格 board 和一個字串單詞 word 。如果 word 存在於網格中,返回 true ;否則,返回 false 。
class Solution:
def exist(self, board: List[List[str]], word: str) -> bool:
rows = len(board)
cols = len(board[0])
visited = [[False for _ in range(cols)] for _ in range(rows)]
def dfs(i, j, index):
if index == len(word):
return True
if i < 0 or i >= rows or j < 0 or j >= cols or visited[i][j] or board[i][j]!= word[index]:
return False
visited[i][j] = True
found = dfs(i + 1, j, index + 1) or dfs(i - 1, j, index + 1) or dfs(i, j + 1, index + 1) or dfs(i, j - 1, index + 1)
visited[i][j] = False
return found
for i in range(rows):
for j in range(cols):
if dfs(i, j, 0):
return True
return False
2. 刪除有序陣列中的重複項 II
給定一個有序陣列 nums ,原地 刪除重複出現的元素,使得出現次數超過兩次的元素只出現兩次 ,返回刪除後陣列的新長度。
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
i = 0
for num in nums:
if i < 2 or num > nums[i - 2]:
nums[i] = num
i += 1
return i