Problem · Array

Simple Array Rotation Game

EasySnowflakeINTERNOA
See Snowflake hiring insights

You are given an array of distinct positive integers and another array that specifies the number of left circular rotations to be performed.

Rotation Rule:

  • A left circular rotation shifts all elements one position to the left.
  • The element at index 0 moves to the last position.
  • All other elements shift left by one index.

Task:

For each rotation value in the rotations array:

  • Perform the rotation on the original array (not cumulative).
  • Determine the index of the maximum element after the rotation.

Function Description

Complete the function getMaxRotationIndexes.

getMaxRotationIndexes has the following parameters:

  • int a[]: Array of distinct integers.
  • int rotations[]: Array representing the number of rotations.

Returns

int[]: Array where each element represents the index of the maximum element after corresponding rotations.

Examples
01 · Example 1
a = [1, 2, 3]
rotations = [1, 2, 3]
return = [1, 0, 2]

For each rotation, the array [1, 2, 3] is rotated starting from the original (not cumulative):

  • Rotation 1 → [2, 3, 1], max = 3 at index 1
  • Rotation 2 → [3, 1, 2], max = 3 at index 0
  • Rotation 3 → [1, 2, 3], max = 3 at index 2
Constraints
  • 1 ≤ n, m ≤ 500000
  • 1 ≤ a[i] ≤ 10^9
  • 0 ≤ rotations[i] ≤ 10^9
More Snowflake problems
drafts saved locally
public int[] getMaxRotationIndexes(int[] a, int[] rotations) {
    // write your code here
}
a[1, 2, 3]
rotations[1, 2, 3]
expected[1, 0, 2]
sign in to submit