Investable Periods

Investable Periods

FULLTIME

A trading firm predicts the stock prices of a commodity for the next n days. A period of consecutive days is considered investable if the maximum price in the period is max_price , and the minimum price in the period is min_price . Find the number of investable periods in the next n days.

More formally, given an array price of length n , find the number of subarrays in which the maximum element is max_price and the minimum element is min_price . Note: A subarray is a sequence of consecutive elements of the array.


Function Description

Complete the function countInvestablePeriods in the editor below.

countInvestablePeriods has the following parameters:

  1. int price[n] : the predicted prices for the next n days
  2. int max_price : the maximum price of an investable period
  3. int min_price : the minimum price of an investable period


Returns

long integer : the number of investable periods


Example 1 :

Input: price = [4, 5, 3, 3, 1], max_price = 5, min_price = 3
Output: 4
Explanation: Here, the periods [4, 5, 3], [4, 5, 3, 3], [5, 3], and [5, 3, 3] are investable.


Example 2 :

Input: price = [2, 2, 1, 5, 1], max_price = 2, min_price = 1
Output: 2
Explanation: The periods [2, 2, 1] and [2, 1] are investable.


Constraints:

  • 1 ≤ n ≤ 105
  • 1 ≤ price[i] ≤ 109
  • 1 ≤ min_price ≤ max_price ≤ 109



  • Get one-to-one training from Google Facebook engineers

    Top-notch Professionals

    Learn from Facebook and Google senior engineers interviewed 100+ candidates.
    Most recent interview questions and system design topics gathered from aonecode alumnus.
    One-to-one online classes. Get feedbacks from real interviewers.

    Customized Private Class

    Already a coding expert? - Advance straight to hard interview topics of your interest.
    New to the ground? - Develop basic coding skills with your own designated mentor.
    Days before interview? - Focus on most important problems in target company question bank.