求数组中连续元素的最大乘积
Posted mokayy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求数组中连续元素的最大乘积相关的知识,希望对你有一定的参考价值。
题目是:输入遗传数组,求出数组中 是连续片段的乘积。
例如: 输入:【1,2,3,5,6】 输出:30
【2,3, 7,9】 输出:6
1 class Solution { 2 public: 3 4 vector<vector<int>> findCon(vector<int>& nums){ 5 vector<vector<int>> result; 6 vector<int>::iterator it; 7 int pre; 8 vector<int> temp; 9 for(it = nums.begin();it!=nums.end();it++){ 10 if(it == nums.begin()){ 11 pre = *it; 12 temp.clear(); 13 temp.push_back(pre); 14 cout<<"1 "<<*it; 15 16 } 17 else{ 18 if(*it==++pre){ 19 temp.push_back(*it); 20 cout<<"2 "<<*it; 21 } 22 else { 23 result.push_back(temp); 24 temp.clear(); 25 pre=*it; 26 temp.push_back(*it); 27 cout<<"3 "<<*it; 28 29 } 30 } 31 } 32 result.push_back(temp); 33 return result; 34 } 35 int maxProduct(vector<int>& nums) { 36 int lens = nums.size(); 37 if(lens == 0) return -1; 38 if(lens == 1) return nums[0]; 39 vector<vector<int>> result = findCon(nums); 40 vector<int> multi; 41 vector<int>::iterator itt; 42 int index =0; 43 int len = result.size(); 44 for(int i =0;i<len;i++){ 45 multi.push_back(1); 46 for(itt = result[i].begin();itt!=result[i].end();itt++){ 47 multi[index]*=*itt; 48 } 49 // cout<< multi[index]; 50 index++; 51 } 52 sort(multi.begin(),multi.end()); 53 return multi[--index]; 54 } 55 };
以上是关于求数组中连续元素的最大乘积的主要内容,如果未能解决你的问题,请参考以下文章