题解 | #未排序数组中累加和小于或等于给定值的最长子数组长度#

未排序数组中累加和小于或等于给定值的最长子数组长度

http://www.nowcoder.com/practice/3473e545d6924077a4f7cbc850408ade

n, k = map(int, input().split())
arr = list(map(int, input().split()))
min_sums, min_ends = [0] * n, [0] * n
min_sums[-1] = arr[-1]
min_ends[-1] = n - 1
for i in range(n - 2, -1, -1):
    if min_sums[i + 1] + arr[i] <= arr[i]:
        min_sums[i] = min_sums[i + 1] + arr[i]
        min_ends[i] = min_ends[i + 1]
    else:
        min_sums[i] = arr[i]
        min_ends[i] = i
end, su, res = 0, 0, 0
for i in range(n):
    while end < n and su + min_sums[end] <= k:
        su += min_sums[end]
        end = min_ends[end] + 1
    res = max(res, end - i)
    if end > i:
        su -= arr[i]
    else:
        end = i + 1
print(res)

全部评论

相关推荐

2025-12-28 22:19
门头沟学院 Java
不敢追165女神:简历写得毫无特点,你说你要是大二或者大三找寒假实习到暑期实习这段时间,你的简历还能约到面试。但是你是研究生哥,面试官不会因为你是研究生而降低要求,反而会觉得你是研究生才学了这么一点?为什么我不找个同阶段的本科生?
简历中的项目经历要怎么写
点赞 评论 收藏
分享
2025-12-08 18:11
曲阜师范大学 Java
程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务