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;
        }
    }
  • 相关阅读:
    python数据类型三(字典)
    python数据类型二(列表和元组)
    python数据类型一(重点是字符串的各种操作)
    python基础二
    jquery validate学习心得
    Block 朴实理解
    Block 使用场景
    Block 进阶
    MD5加密
    SQL语句中 chinese_prc_CS_AI_WS 以及replace用法
  • 原文地址:https://www.cnblogs.com/xiaohua92/p/5315801.html
Copyright © 2011-2022 走看看