1019、最大乘积连续子串解析
来源:互联网 发布:python中文编码问题 编辑:程序博客网 时间:2024/05/01 20:11
地址:http://blog.csdn.net/liuxiaobin_bluegiant/article/details/8707900转载请标明出处,谢谢
欢迎关注微博:http://weibo.com/718667835
最大乘积连续子串问题,确实有点复杂,昨天在庞果网上http://hero.pongo.cn/看见此题(人生做程序首次见到),感觉有点麻烦,介于昨天晚上同一时间发表的一篇文章,代码有些问题,经本人今晚改正,现在代码公布于下,希望大家能够提出宝贵意见,这是主要原因之一,其次见v_JULY_v的文章中,代码不全,且没有java 版的完整代码,在此作一个补充吧。
返回首页
解决方案
完整的java code :
import java.text.NumberFormat;import java.util.Scanner;public class Makamus{ private static double st,ed,Smax=0; public static void MaxS(double[] arr){double S=1;double tempst = arr[0],temped;double tempstmin=arr[0],tempedmin,tempSmin=1,tempSmax=1,tempstmax=arr[0],tempedmax;for(int i=0;i<arr.length;i++){if(Smax==0&&arr[i]!=0){ Smax=arr[i];tempst=arr[i];tempstmin=arr[i];st=tempst;ed=tempst;}if(arr[i]==0){S=1; tempSmin=1; tempSmax=1;if(i<arr.length-1){tempst=arr[i+1];tempstmin=arr[i+1];}else{tempst=arr[i];tempstmin=arr[i+1];}}else{ S*=arr[i]; tempSmin*=arr[i]; if(tempSmax*arr[i]<tempSmax){ tempSmax=1; if(i<arr.length-1) tempstmax=arr[i+1]; }else{ tempSmax*=arr[i]; } if(S>Smax){Smax=S;temped=arr[i];st=tempst;ed=temped;} if(arr[i]>Smax){S=arr[i]; tempst=arr[i];Smax=arr[i];st=tempst; ed=tempst; } if(tempSmin>Smax){ Smax=tempSmin; tempedmin=arr[i]; st=tempstmin; ed=tempedmin; } if(tempSmax>Smax){ Smax=tempSmax; tempedmax=arr[i]; st=tempstmax; ed=tempedmax; } if(tempSmin>arr[i]){ tempSmin=arr[i]; tempstmin=arr[i]; } if(tempSmin>S){ tempSmin=S; }}}} public static void main(String args[]){Scanner sc=new Scanner(System.in);int N= sc.nextInt();double[] arr=new double[N];for(int i=0;i<N;i++)arr[i]= sc.nextDouble();MaxS(arr);NumberFormat ddf1=NumberFormat.getNumberInstance() ; ddf1.setMaximumFractionDigits(2); System.out.println(ddf1.format(st)+" "+ddf1.format(ed)+" "+ddf1.format(Smax)); }}
解法上没有过多的涉及参数变量,变量个数确定,此点有别于v_JULY_v,同时一个for 语句搞定,在线性时间内完成。由于程序算法清晰,不作过多的解释了。
- 1019、最大乘积连续子串解析
- 1019 最大乘积连续子串
- 最大乘积连续子串
- 最大连续乘积子串
- 最大连续乘积子串
- 最大连续乘积子串
- 401最大连续乘积子串
- 【算法】最大连续乘积子串
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- 最大连续子序列乘积
- Python变量函数:函数名存在变量中
- 快速排序
- NameValueCollection集合
- Hbase的SQL接口之Phoenix使用总结(1)
- spoj1182
- 1019、最大乘积连续子串解析
- 睡眠关机脚本
- 日志操作实现思路
- C#用什么方法可以减少或不使用switch
- PKU ACM/ICPC竞赛队最近八年比赛成绩
- Android实现电话状态监控
- C++异常机制的实现方式和开销分析
- iOS-色彩UIColor
- BOJ 319 3230391's easy problem