腾讯算法笔试,第一题:拆栅栏
题意大致是,一个数组表示栅栏的高度,小明要拆除连续的 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)