Amazon OA

726
Oct 09, 2022
Oct 09, 2022

given an array of stock prices, find the month at which the net price change is minimum. if there are several such months, return the earliest month.

int solve(vector<int>&v){

    int n = v.size();
    long  ans = n;
    long mx = INT_MAX;
    long rsum = 0;
    for (auto val : v)
        rsum += val;
    long lsum = 0;
    for (int i = 0; i < n - 1; i++)
    {
        lsum += v[i];
        rsum -= v[i];
        long ravg = (rsum) / (n - i -1);
        long lavg = (lsum) / (i + 1);
        if ((abs(lavg - ravg)) < mx)
        {
            mx = abs(lavg - ravg);
            ans = i + 1;
        }
    }
  return ans;

}
Comments (4)