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;
        }
    }
  • 相关阅读:
    MySQL简概
    IO模型
    协程
    multiprocessing模块
    Python线程的常见的lock
    111-使用post的方式传值(最简示例)
    110-使用正则匹配的方式从url获值
    109-get方式获取url传值
    108-使用表格,不依赖于后台而输入内容
    107-创建第一个动态模板
  • 原文地址:https://www.cnblogs.com/xiaohua92/p/5315801.html
Copyright © 2011-2022 走看看