DP--乘积最大子组数(线性-单串)

目录

题号

思路

    由于是连续子数组,则dp[i]应当依赖于前一个的值,这和最大子数组和有异曲同工之妙

    但是这仅在数组每一项均为正数的情况下成立

    若数组中存在偶数对的负数,如[-1,2,3,-4,5]

    则在dp[2]时,由于-2*3<-2,故子数组[-1,,2]将被舍弃

    但是在dp[3]时,由于nums[3]为负,故被舍弃的-6应当参与运算

    故,应当想办法将其记录下来

    并在下一次运算dp时,发现为负数时将-6拿出来参与计算

    故考虑准备两个数组maxF和minF分别表示以i结尾的最大乘积可最小乘积

    若当前是负数,则希望前一个乘积越小越好

    则分别将nums[i]并入前一个计算即可

实现

你可能感兴趣的:(DP--乘积最大子组数(线性-单串))