zoukankan      html  css  js  c++  java
  • C#解leetcode 152. Maximum Product Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest product.

    For example, given the array [2,3,-2,4],
    the contiguous subarray [2,3] has the largest product = 6.

    分析:这个题目就是让你求连续的子数组的乘积的最大值。

    (1)在数组中没有0的情况下,最大值要么是nums[0]+nums[1]+。。。。+nums[i]或者是nums[j]+nums[j+1]+。。。。+nums[n-1].

           当数组中全是整数的时候,或者又偶数个负数的时候,答案为nums[0]+nums[1]+。。。。+nums[n-1]

    (2)在数组中有0个情况下,假设nums[i]=0.则答案应该从nums[0]+nums[1]+。。。。+nums[i-1]或者是nums[i+1]+nums[i+2]+。。。。+nums[n-1]中寻找(假设只有一个零的情况,至于当有n个零的时候,将数组分成n+1个子数组就可以了)

    代码如下:

    public class Solution {
        public int MaxProduct(int[] nums) {
            int max= int.MinValue,front=1,back=1;
            
            for(int i=0;i<nums.Length;i++)
            {
               front*=nums[i];
               back*=nums[nums.Length-i-1];
               
               max=Math.Max(max,Math.Max(front,back));
               
               front=front==0?1:front;
               back=back==0?1:back;
            }
            
            return max;
        }
    }
  • 相关阅读:
    删除排序链表中的重复元素
    爬楼梯
    Sqrt(x)
    Add Binary
    fremarker导出word list
    url中文参数乱码问题
    取值范围
    动态添加echarts
    格式化数据保留两位小数,输入格式为 :xxx,xx,,,,x,,(x为浮点数)
    使用poi读取Excel文件数据
  • 原文地址:https://www.cnblogs.com/xiaohua92/p/5315801.html
Copyright © 2011-2022 走看看