调试
不是,你这个模式,答案不是要你打印出来,是要返回,return, no print! 明白吗
参考答案:
class Solution(object):
def maxSlidingWindow(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: List[int]
"""
if k == 0:
return []
ans = [0 for _ in range(len(nums) - k + 1)]
stack = collections.deque([])
for i in xrange(0, k):
while stack and nums[stack[-1]] < nums[i]:
stack.pop()
stack.append(i)
ans[0] = nums[stack[0]]
idx = 0
for i in xrange(k, len(nums)):
idx += 1
if stack and stack[0] == i - k:
stack.popleft()
while stack and nums[stack[-1]] < nums[i]:
stack.pop()
stack.append(i)
ans[idx] = nums[stack[0]]
return ans
数组如果是从0开始计数,k=3 第一次你计算的是a[0]到a[3]四个数的最大值
输出不是null吗?
可能只是部分测试案例通过,算法还是有些问题,有些案例通过不了
当你的列表个数少于k值的时候,你输出L为空,事实上应该有一个值吧?
用return,输出才是结果。
print是供你调试用的