Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Array Pivot and Rotated Index

EasyPython00:00
Practice interviewer
In session
5 left
00:00

Your question is Array Pivot and Rotated Index. Start with the requirements on the right.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.

Problem

Grammarly's mobile suggestion surface stores candidate suggestions in sorted order. Given a sorted array of distinct integers, a rotation count, and a target value, determine the target's index after virtually rotating the array to the right by rotations positions. Do not physically modify or copy the array.

Return the target's zero-based index in the rotated array, or -1 when the target is absent.

Formal Specification

Implement find_index_after_rotation(nums, rotations, target).

  • nums: a sorted list of distinct integers in ascending order.
  • rotations: a non-negative integer. Rotations may be much larger than len(nums).
  • target: an integer to locate.
  • Return an integer containing the target's index after the right rotation.

Use binary search to locate the target in the original sorted array, then map that index into the rotated coordinate system. An empty array returns -1.

Constraints

  • 0 <= nums.length <= 100000
  • nums is strictly increasing
  • 0 <= rotations <= 10^18
  • -10^9 <= nums[i], target <= 10^9

Function Signature

def find_index_after_rotation(nums, rotations, target):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output