

我们可以按照题目的描述逐步实现这个过程:
操作流程:
-
遍历数组
nums的前n-1个元素,对每个nums[i]和nums[i+1]进行判断:-
如果
nums[i] == nums[i+1],则:-
nums[i] = nums[i] * 2 -
nums[i+1] = 0
-
-
-
完成所有操作后,将数组中的所有
0移动到数组末尾,保持非零元素的相对顺序不变。
示例代码(Python):
def apply_operations(nums):
n = len(nums)
# 第一步:按题意进行操作
for i in range(n - 1):
if nums[i] == nums[i + 1]:
nums[i] *= 2
nums[i + 1] = 0
# 第二步:将所有 0 移动到末尾
result = [num for num in nums if num != 0] # 保留非零元素
zeros = [0] * (n - len(result)) # 添加相应个数的零
return result + zeros
示例测试:
print(apply_operations([1,0,2,0,0,1])) # 输出:[1, 2, 1, 0, 0, 0]
print(apply_operations([2,2,0,4,4,8])) # 输出:[4, 4, 8, 0, 0, 0]
546

被折叠的 条评论
为什么被折叠?



