给出n个数,每次你可选择相邻且相等的两个数字将其删除,你可以进行任意次上述操作,现在问你能不能将该数组完全删除 (0\leq n \leq2e50≤n≤2e5 ,保证数组元素的值在intint范围内) 如果可以输出”YES”,否则输出”NO”
输入
两行数字,第一行输入一个数字n。接下来一行有n个数字
输出
"YES" 或 "NO"
样例输入 Copy
10
1 2 2 3 4 4 3 1 2 3
样例输出 Copy
NO
提示
第一步你可以消除一对 2 数组变成1 3 4 4 3 1 2 3,
第二步你可以消除一对 4 数组变成1 3 3 1 2 3,
第三步你可以消除一对 3 数组变成1 1 2 3,
第三步你可以消除一对 1 数组变成 2 3.
显然不能被完全删除
你题目的解答代码如下:
#include <iostream>
using namespace std;
int main()
{
int n,m,i,j=-1;
cin >> n;
int a[n];
for (i = 0; i < n; i++)
{
cin >> m;
if (j>-1 && m==a[j])
j--;
else
a[++j] = m;
}
if (j==-1)
cout << "YES";
else
cout << "NO";
return 0;
}
如有帮助,望采纳!谢谢!