Transformed Array
You are given an integer array nums that represents a circular array. Your task is to create a new array result of the same size, following these rules:
For each index i where 0 <= i < nums.length, perform the following independent actions:
- If
nums[i] > 0: Start at indexiand movenums[i]steps to the right in the circular array. Setresult[i]to the value at the index where you land. - If
nums[i] < 0: Start at indexiand moveabs(nums[i])steps to the left in the circular array. Setresult[i]to the value at the index where you land. - If
nums[i] == 0: Setresult[i]tonums[i].
Return the new array result.
Note: Since nums is circular, moving past the last element wraps around to the beginning, and moving before the first element wraps back to the end.
Example 1
Input
nums = [3,-2,1,1]Output
[1,1,1,3]Moving from each index according to its value gives landing values
1, 1, 1, and 3.Example 2
Input
nums = [-1,4,-1]Output
[-1,-1,4]Moving from each index according to its value gives landing values
-1, -1, and 4.Constraints
- 1 <= nums.length <= 100
- -100 <= nums[i] <= 100