一道某度的笔试算法题

题目:给定一个长度为n,由非零整数成的数组,求连续子数组乘积为负数的个数
example:

5
5 -3 3 -1 1
7
8

ChatGPT的答案,基本正确,有个地方多+1了

n = int(input())
arr = list(map(int, input().split()))

dp1, dp2 = [0] * (n+1), [0] * (n+1)

for i in range(1, n+1):
    if arr[i-1] > 0:
        dp1[i] = dp1[i-1] + 1
        dp2[i] = dp2[i-1]
    else:
        dp2[i] = dp1[i-1] + 1
        dp1[i] = dp2[i-1]

print(sum(dp1))
print(sum(dp2))
posted @   Rogn  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2020-03-07 面试题:两个栈模拟队列&&两个队列模拟栈
2020-03-07 TextBlob Quick Start
2020-03-07 链表基本操作题
2020-03-07 leetcode341 扁平化嵌套数组
2019-03-07 VGG16学习笔记
2019-03-07 CNN中卷积层的计算细节
2019-03-07 卷积网络中的通道(Channel)和特征图
点击右上角即可分享
微信分享提示