Description
Solutions
Submission
Calculate Region

There is a straight line of students of various heights. The students' heights are given in the form of an array, in the order they are standing in the line.

Consider the region of a student as the length of the largest subarray that includes that student's position, and in which that student's height is equal to maximum height among all students present in that subarray. Return the sum of the region of all students.

Function Description

Complete the function calculateTotalRegion in the editor.

calculateTotalRegion has the following parameter(s):

  • heights: an array of the heights of students standing in the line
  • Returns

    long integer: the desired sum of all regions

    Example 1:

    Input:  heights = [3, 5, 6]
    Output: 6
    Explanation:
    The longest subarray in which the first student's height is equal to the maximum height among all other students is [3]; thus, the length of the region of the first student is 1. The longest subarray in which the second student's height is equal to maximum height among all other students is [3, 5]; thus, the length of the region of the second student is 2. The longest subarray in which the third student's height is equal to the maximum height among all other students is [3, 5, 6]; thus, the length of the region of the third student is 3. Thus, the sum of the lengths of all regions of all students is 1 + 2 + 3 = 6 (But the ans on the source img is 5, which is quite confusing...Many thanks in advance if you could help clarify the calculation 👍).

    Example 2:

    Input:  heights = [1, 2, 1]
    Output: 5
    Explanation:
    Subarrays for values 1, 2, and 1 are [1], [1, 2], and [1]. The sum of their lengths is 1 + 3 + 1 = 5.
    Constraints:
      • 1 ≤ length of heights ≤ 105
      • 1 ≤ heights[i] ≤ 109
    Thumbnail 0
    Testcase

    Result
    Case 1

    input:

    output: