Grokking the Engineering Manager Coding Interview
Ask Author
Back to course home

0% completed

Array Transformation (easy)
Table of Contents

Problem Statement

Examples

Try it yourself

Problem Statement

Given an array arr, you transform it daily based on the following rules:

  1. If an element is smaller than both its left and right neighbors, increment it by 1.
  2. If an element is larger than both its left and right neighbors, decrement it by 1.
  3. The first and last elements of the array do not change.

Continue transforming the array until no more changes occur. Return the final state of the array.

Examples

Example 1

  • Input: arr = [5, 2, 8, 1, 6]
  • Expected Output: [5, 5, 5, 5, 6]
  • Justification:
    • On the first day, 2 is incremented to 3, 8 is decremented to 7, and 1 is incremented to 2. The first and last elements remain unchanged. The final state of the array after the first day is [5, 3, 7, 2, 6].
    • After second day: [5, 4, 6, 3, 6].
    • After third day: [5, 5, 5, 4, 6].
    • After forth day: [5, 5, 5, 5, 6].

Example 2

  • Input: arr = [3, 7, 1, 5, 2]
  • Expected Output: [3,3,3,3,2]
  • Justification:
    • After first day: [3, 6, 2, 4, 2].
    • After second day: [3, 5, 3, 3, 2].
    • After third day: [3, 4, 3, 3, 2].
    • After forth day: [3, 3, 3, 3, 2].

Example 3

  • Input: arr = [9, 9, 9, 9, 9]
  • Expected Output: [9, 9, 9, 9, 9]
  • Justification: All elements are the same. So, arr remains unchanged.

Constraints:

  • 3 <= arr.length <= 100
  • 1 <= arr[i] <= 100

Try it yourself

Try solving this question here:

Python3
Python3

. . . .
Mark as Completed

Table of Contents

Problem Statement

Examples

Try it yourself