中等
给你一个整数数组 nums 和一个整数 k。
将数组中 非负 元素以循环的方式 向左 轮替 k 个位置。
所有 负数 元素必须保持在它们原来的位置,不进行移动。
轮替后,将 非负 元素按照新的顺序放回数组中,仅填充原先包含 非负 值的位置,并 跳过所有负数 的位置。
返回处理后的数组。
示例 1:
输入: nums = [1,-2,3,-4], k = 3
输出: [3,-2,1,-4]
解释:
- 非负元素按顺序为
[1, 3]。 - 以
k = 3进行向左轮替,结果为:[1, 3] -> [3, 1] -> [1, 3] -> [3, 1]
- 将它们放回非负值对应的位置,结果为
[3, -2, 1, -4]。
示例 2:
输入: nums = [-3,-2,7], k = 1
输出: [-3,-2,7]
解释:
- 非负元素按顺序为
[7]。 - 以
k = 1进行向左轮替,结果为[7]。 - 将它们放回非负值对应的位置,结果为
[-3, -2, 7]。
示例 3:
输入: nums = [5,4,-9,6], k = 2
输出: [6,5,-9,4]
解释:
- 非负元素按顺序为
[5, 4, 6]。 - 以
k = 2进行向左轮替,结果为[6, 5, 4]。 - 将它们放回非负值对应的位置,结果为
[6, 5, -9, 4]。
提示:
1 <= nums.length <= 105-109 <= nums[i] <= 1090 <= k <= 105