文章
49
粉丝
90
获赞
9
访问
27.2k
#include<deque>
#include<iostream>
using namespace std;
class my_deque
{
public:
deque<int>d;//双端队列
/*
if(队列为空 && 该处有数字)
{插入该数字;}
else if(队列不空 && 该处有数字)
{
if(队尾数字==n && 这个位置没有合并过)
{
弹出队尾;
插入2n;
这个位置合并过;
}
else
{
插入n;
这个位置没合并过;
}
*/
void my_push(int n)
{
int flag = 0;
if (d.empty() && n != 0)
{
d.push_back(n);
}
else if (!d.empty() && n != 0)
{
if (d.back() == n && flag == 0)
{
d.pop_back();
d.push_back(2 * n);
flag = 1;
}
else
{
d.push_back(n);
flag = 0;
}
}
}
/*
if(队列非空)
{
记录并弹出队头;
}
else
{
弹出0;
}
*/
int my_pop()
{
if (!d.empty())
{
int x = d.front();
d.pop_front();
return x...
登录后发布评论
暂无评论,来抢沙发