使用栈模拟算法。
从左到右扫描原数组,栈中维护已经处理完成的部分。
设当前元素为 x:
给定一个长度为 n 的整数数组。
请你从左到右对数组进行处理,处理规则如下:
请输出处理完成后的数组。
输入共两行。
输出共一行,包含若干个整数,表示处理完成后的数组。
相邻两个整数之间用一个空格隔开。
9
2 2 3 3 6 4 5 5 6
2 4 2 6 12 6 4 10 6
原数组为:
2 2 3 3 6 4 5 5 6
从左到右处理:
2 2 是两个相邻且相同的偶数,所以在它们中间插入 2 + 2 = 4,得到 2 4 23 3 是两个相邻且相同的奇数,所以删除这两个 3,并插入 3 + 3 = 66 与后面的 6 相邻且相同,并且都是偶数,所以在它们中间插入 6 + 6 = 125 5 是两个相邻且相同的奇数,所以删除这两个 5,并插入 5 + 5 = 10因此,处理后的数组为:
2 4 2 6 12 6 4 10 6