乘积最大子数组
链接
(图片来源网络,侵删)
152. 乘积最大子数组 - 力扣(LeetCode)
这个题目里面的数字是含有负数的,我们就要考虑到这一点,因为负负得正,当一个最小值(极有可能是负数)乘以一个负数,那么这个就变成了最大值。
我们需要用到动态规范来做这道题,因为题目要求是说连续的,我们分成俩个数组,一个dpmax记录这个位置的连续乘积最大子数组的值,一个dpmin记录经过这个位置最小子数组的值(为了防止后面有一个负数来使得它变大),所以当前 最大值就有三种情况,nums[i] dpmax[i-1]*nums[i] dpmin[i-1]*nums[i] 在这三个里面去寻找最大的,同时需要更新 dpmax 和 dpmin 数组
代码如下:
#define MIN -2147483647 #define MAX 2147483648 int max(int a,int b) { if(a>b) return a; return b; } int min(int a,int b) { if(a>b) return b; return a; } int maxProduct(int* nums, int numsSize) { int res=MIN; if(numsSize==1) return nums[0]; if(numsSize
相关阅读:
1、pycharm打不开且报错processing of -javaagent failed, processJavaStart failed 解决
2、【vue3+ts项目】配置eslint校验代码工具,eslint+prettier+stylelint
3、ESlint报错[vue/comment-directive]cleareslint-plugin-vue及Cannot find name ‘template‘.
4、Elasticsearch中父子文档的关联:利用Join类型赋予文档的层级关系
5、【基于Ubuntu下pointnet++激光点云目标检测】保姆级教程 | 环境配置 | 数据集下载 | 修改配置 | 训练以及测试 | 全过程图文by.Akaxi
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...