首页 > 代码库 > 算法题——最大连续子序列乘积
算法题——最大连续子序列乘积
1 template <typename Comparable> 2 Comparable maxprod( const vector<Comparable>&v) 3 { 4 int i; 5 Comparable maxProduct = 1; 6 Comparable minProduct = 1; 7 Comparable maxCurrent = 1; 8 Comparable minCurrent = 1; 9 //Comparable t; 10 11 for( i=0; i< v.size() ;i++) 12 { 13 maxCurrent *= v[i]; 14 minCurrent *= v[i]; 15 if(maxCurrent > maxProduct) 16 maxProduct = maxCurrent; 17 if(minCurrent > maxProduct) 18 maxProduct = minCurrent; 19 if(maxCurrent < minProduct) 20 minProduct = maxCurrent; 21 if(minCurrent < minProduct) 22 minProduct = minCurrent; 23 if(minCurrent > maxCurrent) 24 swap(maxCurrent,minCurrent); 25 if(maxCurrent<1) 26 maxCurrent = 1; 27 //if(minCurrent>1) 28 // minCurrent =1; 29 } 30 return maxProduct; 31 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。