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;
        }
    }
  • 相关阅读:
    锋利的BFC
    inline和inline-block的间隙问题
    margin和padding的四种写法
    js中Math.round、parseInt、Math.floor和Math.ceil小数取整小结
    使用vscode自动编译less
    redux获取store中的数据
    react显示隐藏动画
    react使用路由
    react中使用fetchjsonp获取数据
    vue兼容到ie9
  • 原文地址:https://www.cnblogs.com/xiaohua92/p/5315801.html
Copyright © 2011-2022 走看看