乘积最大子序列
来源:互联网 发布:linux安装db2 9.7 编辑:程序博客网 时间:2024/06/05 04:01
问题:
找出一个序列中乘积最大的连续子序列(至少包含一个数)。
解题思路:
该题是典型的动态规划问题,考虑到序列中存在负数的情况,需要定义两个辅助数组,一个存储以当前元素结尾的最大乘积,一个记录以当前元素结尾的最小乘积。
int maxProduct(vector<int>& nums) { // write your code here int size = nums.size(); if(size < 1) return 0;//创建辅助数组,记录以当前元素结尾的最大乘积 int *curmax = new int[size]; int *curmin = new int[size]; memset(curmax, 0, sizeof(int) * size); memset(curmin, 0, sizeof(int) * size);//填充辅助数组 int maxnum = nums[0]; curmax[0] = nums[0]; curmin[0] = nums[0]; for(int i = 1; i < size; i++){ curmax[i] = max(nums[i], max(nums[i] * curmax[i - 1], nums[i] * curmin[i - 1])); curmin[i] = min(nums[i], min(nums[i] * curmin[i - 1], nums[i] * curmax[i - 1])); if(curmax[i] > maxnum){ maxnum = curmax[i]; } } return maxnum; }
0 0
- 最大乘积子序列
- 最大子序列乘积
- 乘积最大子序列
- 乘积最大子序列
- 乘积最大子序列
- 乘积最大子序列
- 最大子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- LintCode-乘积最大子序列
- USACO 1.3 Combination Lock
- C++ 11 Lambda表达式
- php面向对象基础
- 冒泡排序
- 关于<stdio.h>中feof()函数的问题
- 乘积最大子序列
- 径向基函数插值(2)一维数据的插值
- 卡尔曼(kalman)滤波器概述
- 江雪
- 写代码简单比较init-method,afterPropertiesSet和BeanPostProcessor
- expect的一些知识点
- 工具配置小记
- JavaScript高级程序设计学习笔记(一)
- Makefile自动依赖