复习1.岛屿数量
class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
def sink(i,j):
if 0 <= i < len(grid) and 0 <= j <len(grid[i]) and int(grid[i][j]):
grid[i][j] = 0
for i,j in zip((i,i+1,i,i-1),(j+1,j,j-1,j)):
sink(i,j)
return 1
return 0
return sum(sink(i,j) for i in range(len(grid)) for j in range(len(grid[i])))
class Solution:
def rangeBitwiseAnd(self, m: int, n: int) -> int:
res = 0
while m != n:
m >>= 1
n >>= 1
res += 1
return m << res
class Solution:
def minSubArrayLen(self, s: int, nums: List[int]) -> int:
a,b,k = 0,0,float('inf')
for j in range(len(nums)):
a += nums[j]
while a >= s:
k = min(k,j-b+1)
a -= nums[b]
b += 1
return 0 if k == float('inf') else k