zoukankan      html  css  js  c++  java
  • Product of Array Except Self

     1、Product of Array Except Self

     1 class Solution {
     2 public:
     3     vector<int> productExceptSelf(vector<int>& nums) {
     4         vector<int> output(nums.size(), 1);
     5         if(nums.empty())
     6                return output;
     7         int left=1, right=1;
     8         for(int i=0; i<nums.size(); i++)
     9         {
    10             output[i] = left;
    11             left = left * nums[i];
    12         }
    13         for(int i=nums.size()-1; i>=0; i--)
    14         {
    15             output[i] = right * output[i];
    16             right = right * nums[i];            
    17         }
    18         
    19         return output;
    20     }
    21 };

    2、Maximum Subarray

     1 class Solution {
     2 public:
     3     int maxSubArray(vector<int>& nums) {
     4         if(nums.empty())
     5             return 0;
     6         vector<int> local(nums.size(), 0);    
     7         vector<int> global(nums.size(), 0);
     8         local[0]= nums[0];
     9         global[0] = nums[0];
    10         for(int i=1; i<nums.size(); i++)
    11         {
    12             local[i] = max(local[i-1]+nums[i], nums[i]);
    13             global[i] = max(local[i], global[i-1]);
    14         }
    15         
    16         return global[nums.size()-1];
    17     }
    18 };
     1 class Solution {
     2 public:
     3     int maxSubArray(vector<int>& nums) {
     4         if(nums.empty())
     5             return 0;
     6         int sum = 0;
     7         int maxsum =nums[0];
     8         for(int i=0; i<nums.size(); ++i)
     9         {
    10              if(nums[i]+sum< nums[i])
    11                   sum = 0;
    12              sum += nums[i];
    13              if(maxsum < sum)
    14                   maxsum = sum;
    15              
    16         }
    17        return maxsum;
    18     }
    19 };

    3、Maximum Product Subarray

     1 class Solution {
     2 public:
     3     int maxProduct(vector<int>& nums) {
     4         if(nums.empty())
     5              return 0;
     6         int max_l = nums[0];
     7         int min_l = nums[0];
     8         int max_g = nums[0];
     9         for(int i=1; i<nums.size(); i++)
    10         {
    11             int tmp_max = max_l;
    12             max_l = max(max(tmp_max*nums[i], nums[i]), min_l*nums[i]);
    13             min_l = min(min(tmp_max*nums[i], nums[i]), min_l*nums[i]);
    14             max_g = max(max_g, max_l);
    15         }
    16         return max_g;
    17     }
    18 };
  • 相关阅读:
    PHP userAgent解析 PHP
    VB 2 C# 语法对比图
    HTML特殊字符数据库读写处理
    备份数据库
    Rose建模初步 [来自:UMLChina]
    ASP下的二级联动(XML方式)
    VSS使用手册
    管理项目的好助手——VSS入门
    【转】VB.NET的阳历与农历转换的算法
    GIF, JPEG和PNG
  • 原文地址:https://www.cnblogs.com/daocaorenblog/p/5541363.html
Copyright © 2011-2022 走看看