求最大子序列的乘积
来源:互联网 发布:阿根廷潜艇 知乎 编辑:程序博客网 时间:2024/06/05 06:36
最大子序列的乘积,两种方法:
1.方法一的时间复杂度为O(n^2),这个方法是通过循环遍历所有的子序列。
public static int maxSubMulti(int[] a){ int maxsub = 0; int minsub = 0; for(int i = 0 ; i < a.length ; i++){ int temp = 1; for(int j = i; j < a.length; j++){ temp *= a[j]; if(temp > maxsub){ maxsub = temp; } if(temp < minsub){ minsub = temp; } } } return maxsub; }
2.方法二是动态规划的方法。时间复杂度是O(N),通过求子序列(i,j)和a[i],的最大最小值,来更新序列的最大最小值。
public static int maxMulti(int[] a){ int[] maxsub = new int[a.length]; int[] minsub = new int[a.length]; maxsub[0] = a[0]; minsub[0] = a[0]; int maxval = maxsub[0]; for(int i = 1 ; i < a.length ; i++){ maxsub[i] = max3(a[i],maxsub[i - 1] * a[i],minsub[i - 1] * a[i]); minsub[i] = min3(a[i],minsub[i - 1] * a[i],maxsub[i - 1] * a[i]); if(maxval < maxsub[i]){ maxval = maxsub[i]; } } return maxval; }
阅读全文
0 0
- 求最大子序列的乘积
- 求最小子序列和 求最小的正序列 求最大子序列乘积
- 求最大连续子序列乘积
- 最大乘积子序列
- 最大子序列乘积
- 乘积最大子序列
- 乘积最大子序列
- 乘积最大子序列
- 乘积最大子序列
- 最大子序列乘积
- 最大乘积子序列的值
- 子序列的最大乘积问题
- 求子数组的最大乘积
- 求连续子数组的最大乘积
- 求子数组的最大乘积
- [ACM] POJ 2796 Feel Good (求序列中子序列的和与子序列中的最小数最大乘积)
- 最大连续子序列乘积
- 最大连续子序列乘积
- 重写对象equals和compareTo方法
- antd-admin 错误排查
- HTML学习之路03--超链接标签
- ELO算法的JAVA实现
- 欢迎使用CSDN-markdown编辑器
- 求最大子序列的乘积
- Docker-image发布到Docker-hub实践
- UITableView的代理方法didDeselectRowAtIndexPath不响应
- jQuery学习之:ajaxSetup值列表
- 第二周的课
- NSException 程序崩溃日志
- MyISAM和InnoDB的区别
- java变量的作用域和访问修饰符
- centos重新安装,卸载python yum