腾讯算法笔试,第一题:拆栅栏
题意大致是,一个数组表示栅栏的高度,小明要拆除连续的 k 个 栅栏,并且保证栅栏高度总和最小
一开始 用 列表模拟,不停进队 出队操作,然后超时
后来改用一个 变量 存储 数字和 来做 AC 100%
if __name__ == "__main__":
n, k = [int(x) for x in input().strip().split(' ')]
h = [int(x) for x in input().strip().split(' ')]
res = 0
for i in range(k):
res += h[i]
ans = res
index = 0
for i in range(k, n):
res -= h[i-k]
res += h[i]
if res < ans:
ans = res
index = i-k+2
print(index)
曼迪匹艾公司福利 125人发布