链接: 6303. 分割数组中数字的数位
按题意模拟即可。
class Solution:
def separateDigits(self, nums: List[int]) -> List[int]:
ans = []
for v in nums:
for c in str(v):
ans.append(int(c))
return ans
链接: 6304. 从一个范围内选择最多整数 I
class Solution:
def maxCount(self, banned: List[int], n: int, k: int) -> int:
s = set(banned)
ans = 0
for v in range(1,n+1):
if v not in s:
if k >= v:
ans += 1
k -= v
else:
break
return ans
链接: 6331. 两个线段获得的最多奖品
class Solution:
def maximizeWin(self, ps: List[int], k: int) -> int:
n = len(ps)
pre = [0]*(n+1)
l = ans = 0
for i,v in enumerate(ps):
while v - ps[l] > k:
l += 1
ans = max(ans,i-l+1 + pre[l])
pre[i+1] = max(pre[i],i-l+1)
return ans
class Solution:
def isPossibleToCutPath(self, grid: List[List[int]]) -> bool:
m,n = len(grid),len(grid[0])
if m == 1 :
return n>2
if n == 1:
return m >2
def dfs(x,y):
grid[x][y] = 0
for a,b in (x+1,y),(x,y+1):
if a == m - 1 and b == n - 1:
return True
if a < m and b < n and grid[a][b]:
if dfs(a,b):
return True
return False
if not dfs(1,0):
return True
if not dfs(0,1):
return True
return False