文章
49
粉丝
90
获赞
91
访问
57.3k
 
#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...
    
登录后发布评论
暂无评论,来抢沙发