Problem · Array

Horizontal Pod Autoscaler (Infrastructure Automation Internship)

MediumSnowflakeINTERNOA
See Snowflake hiring insights

The developers are trying to optimize their horizontal pod autoscaler for their micro-services. There are n micro-services where the number of pods for the ith micro-service is pods[i]. According to traffic, the number of pods of a service can increase or decrease. Also, at specific times when there is expected traffic, all services with fewer than x pods are assigned x pods.

There is an event log of size m, which is described as a 2D array logs where logs[i] is an array of integers of size = 3. The interpretation of these logs are shown.

  • [1, p, x]: the number of pods of the pth micro-service is changed to x.
  • [2, -1, x]: all the micro-services whose number of pods is less than x are changed to x.

Find the resulting number of pods for the micro-services.

Function Description

Complete the function findPodCount in the editor below.

findPodCount has the following parameters:

  • int pods[n]: the number of pods for the micro-services (1 <= p <= n)
  • int logs[m][3]: the event log of the horizontal pod autoscaler
  • Returns

    int[n]: the ith element represents the final pod count of the ith micro-service

    Examples
    01 · Example 1
    pods = [2, 4, 1, 4]
    logs = [[1, 2, 30], [1, 3, 4], [2, -1, 10]]
    return = [10, 30, 10, 10]
    Example 1 illustration
    02 · Example 2
    pods = [3, 50, 2, 1, 10]
    logs = [[1, 2, 0], [2, -1, 8], [1, 3, 20]]
    return = [8, 8, 20, 8, 10]
    This test case example was added on 06-24-2025. Relevant source image was included in the Problem Source section below.
    Constraints
    • 1 ≤ n ≤ 2 * 10^5
    • 1 ≤ pods[i] ≤ 10^9
    • 1 ≤ m ≤ 2 * 10^5
    • 1 ≤ p ≤ n
    • 0 ≤ x ≤ 10^9
    More Snowflake problems
    drafts saved locally
    public int[] findPodCount(int[] pods, int[][] logs) {
      // write your code here
    }
    
    pods[2, 4, 1, 4]
    logs[[1, 2, 30], [1, 3, 4], [2, -1, 10]]
    expected[10, 30, 10, 10]
    sign in to submit