jain12

Maximum subarray

Jun 1st, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. class Solution {
  2. public:
  3.   /* method 1
  4.     int maxSubArray(vector<int>& nums) {
  5.       int n=nums.size();
  6.       if(n==0)
  7.         return INT_MIN;
  8.       vector<int>v;
  9.       int res=nums[0];
  10.       v.push_back(nums[0]);
  11.       for(int i=1;i<n;i++){
  12.          int x=max(nums[i],nums[i]+v[i-1]);
  13.          v.push_back(x);
  14.          if(x>res)
  15.            res=x;
  16.          }
  17.       return res;
  18.       }
  19.   */
  20.  
  21.   /* second method  (optimal)
  22.   int maxSubArray(vector<int>& nums){
  23.     int n=nums.size();
  24.     int res=INT_MIN;
  25.     if(n==0)
  26.       return res;
  27.     int temp_max=0;
  28.     for(int i=0;i<n;i++){
  29.       temp_max+=nums[i];
  30.       if(temp_max>res)
  31.         res=temp_max;
  32.       if(temp_max<0)
  33.         temp_max=0;
  34.       }
  35.     return res;
  36.     }
  37.     */
  38.   // method 3
  39.    int maxSubArray(vector<int>& nums){
  40.      int n=nums.size();
  41.      int res=INT_MIN;
  42.      if(n==0)
  43.        return res;
  44.      int temp_sum=0;
  45.      for(int i=0;i<n;i++){
  46.        temp_sum=0;
  47.        for(int j=i;j<n;j++){
  48.          temp_sum+=nums[j];
  49.          if(temp_sum>res)
  50.            res=temp_sum;
  51.          }
  52.        }
  53.      return res;
  54.      }
  55.  
  56. };
Add Comment
Please, Sign In to add comment