题目大意:
有一个由n个数组成的数列,如果相邻的两个数和为奇数,则这两个数可以消去,问怎么消可以使剩下的数字最少。
解题思路:
无论怎么消结果都是一定的,所以直接贪心即可。
代码:
#include <cstdio>
#include <stack>
using namespace std;
int n,now;
stack<int> s;
int main()
{
scanf("%d",&n);
for(int i = 0; i < n; i ++){
scanf("%d",&now);
if(!s.empty() && (s.top() + now) % 2 == 1){
s.pop();
}
else{
s.push(now);
}
}
printf("%d\n",s.size());
return 0;
}
本文介绍了一道关于数列中消除相邻奇偶对的算法题,通过使用栈进行贪心策略实现,最终输出剩余元素数量。文章包含了完整的C++代码实现。
4698

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



