码迷,mamicode.com
首页 > 其他好文 > 详细

最大乘积

时间:2017-10-03 10:39:11      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:system.in   static   input.h   子序列   class   []   array   bsp   int   

问题描述:输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。

  样例输入

    3
    2 4 -3
    5
    2 5 -1 2 -1
    7
    -2 4 0 3 5 8 -1

解题关键:因为要求连续,所以当最大值小于当前值时,立刻开启新的子串!用数组保存分别到达数组每一个值时对应的最大值和最小值!

import java.util.Scanner;
/**
 * 最大乘积
 * @author NEU-2015
 *
 */
public class Demo {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        long[] max;     
        long[] min;
        int count;
        int[] array;
        long result;
        while(input.hasNext()) {
            count = input.nextInt();
            array = new int[count];
            max = new long[count];
            min = new long[count];
            for(int i = 0; i < count; i++) {
                array[i] = input.nextInt();
            }
            max[0] = array[0];
            min[0] = array[0];
            for(int i = 1; i < count; i++) {
                max[i] = Max(max[i-1]*array[i], min[i-1]*array[i], array[i]);
                min[i] = Min(max[i-1]*array[i], min[i-1]*array[i], array[i]);
            }
            result = max[0];
            for(int i = 1; i < count; i++) {
                if(max[i] > result) {
                    result = max[i];
                }
            }
            System.out.println(result);
        }
        input.close();
    }

    private static long Max(long l, long m, int i) {
        long max = l;
        if(m > max) {
            max = m;
        }
        if(i > max) {
            max = i;
        }
        return max;
    }

    private static long Min(long l, long m, int i) {
        long min = l;
        if(m < min) {
            min = m;
        }
        if(i < min) {
            min = i;
        }
        return min;
    }
}

 

最大乘积

标签:system.in   static   input.h   子序列   class   []   array   bsp   int   

原文地址:http://www.cnblogs.com/NEU-2015/p/7623296.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!