738 单调递增的数字
class Solution:
def monotoneIncreasingDigits(self, n: int) -> int:
num = list(str(n))
N = len(num)
res = []
count = 0
for i in range(N-1):
if int(num[i]) <= int(num[i+1]):
count += 1
else:
while i > 0 and int(num[i-1]) == int(num[i]):
count -= 1
i -= 1
break
if count == N - 1:
return n
if int(num[count]) != 1:
num[count] = str(int(num[count]) - 1)
num[count+1:] = ['9']*(N-1-count)
else:
num = ['9']*(N-1-count)
print(num,count)
return int(''.join(num))
看了解答,思路和解答不一致,我是从前往后遍历的,解答是从后往前遍历的,解答的思路无需处理相等的特殊情况,还是解答的思路更好一些
968 监控二叉树
优先选择有父节点、两个孩子节点的节点放监控,最大化利用率,然后补空位,这样是否会比其他方法摄像头更多?存在反例,思路有误
真心难。。解答都好复杂,怪不得任务安排上写着可以跳过