Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Reverse a Subarray

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

Your question is Reverse a Subarray. 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

Yahoo News prepares a sequence of feed item IDs for display. To support a presentation mode, reverse the sequence in contiguous groups of k items. If the final group contains fewer than k items, reverse that group as well.

Modify the input list in place and return the same list.

Formal Specification

Implement reverse_in_groups(nums, k), where nums is a list of integers representing feed item IDs and k is a positive group size. Reverse the elements within each consecutive group of at most k elements. The relative order of different groups must not change.

Examples

Example 1

Input: nums = [1, 2, 3, 4, 5, 6, 7], k = 3
Output: [3, 2, 1, 6, 5, 4, 7]

The first two complete groups are reversed, and the final one-element group remains unchanged.

Example 2

Input: nums = [10, 20, 30, 40, 50], k = 2
Output: [20, 10, 40, 30, 50]

Each pair is reversed, followed by the final one-element group.

Constraints

  • 1 <= len(nums) <= 10^5
  • 1 <= k <= 10^5
  • -10^9 <= nums[i] <= 10^9
  • The operation must use O(1) auxiliary space
  • The final group is reversed even when it contains fewer than k elements

Function Signature

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