今天小马的第三题:dp 以及 deque 都可以做;我贴一下今天dp的垃圾code吧 if __name__ == '__main__':     s1 = input().split(' ')     N, K = int(s1[0]), int(s1[1])     s2 = input().split(' ')     As = [int(s) for s in s2]     dp_sum = [0] * N     dp_max = [0] * N     dp_min = [0] * N     dp_sum[K-1] = sum(As[:K])     dp_min[K-1] = min(As[:K])     dp_max[K-1] = max(As[:K])     ans = (dp_sum[K-1] - dp_min[K-1] - dp_max[K-1]) / (K-2)     for i in range(K, N):         dp_sum[i] = dp_sum[i-1] - As[i-K] + As[i]         if As[i] >= dp_max[i-1]:             dp_max[i] = As[i]         else:             if As[i] >= As[i-K]:                 dp_max[i] = dp_max[i-1]             else:                 if As[i-K] < dp_max[i-1]:                     dp_max[i] = dp_max[i-1]                 else:                     dp_max[i] = max(As[i-K+1: i+1])         if As[i] <= dp_min[i-1]:             dp_min[i] = As[i]         else:             if As[i] <= As[i-K]:                 dp_min[i] = dp_min[i-1]             else:                 if As[i-K] > dp_min[i-1]:                     dp_min[i] = dp_min[i-1]                 else:                     dp_min[i] = min(As[i-K+1: i+1])         v = (dp_sum[i] - dp_min[i] - dp_max[i]) / (K-2)         ans = max(ans, v)     print(ans)
点赞 6

相关推荐

ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客网
牛客企业服务