c++ - 如何在 C++ 上比较两个数组上的元素
问题描述
一个 c++ 问题,我必须确定用户是否击中目标。输入敌人可能所在的坐标后,用户输入更多坐标,我必须比较它们,如果攻击的元素 [i] 与敌人 [n] 的任何元素匹配,则打印 YES。我知道我在比较位置而不是元素,这就是为什么它不起作用但我迷路了。我也尝试通过只制作一个数组来解决它,但这样感觉更好。
#include <iostream>
using namespace std;
int main()
{
int n, k, b;
int enemies[];
int attacks[];
cin>>n;
for (int i=0; i<n; i++) {
cin>>b;
enemies[i]=b;
}
cin>>k;
for (int i=0; i<k; i++) {
cin>>b;
atacks[i]=b;
}
for(int i=0; i<k; i++){
if(atacks[i]==enemies[i]){
cout<<"YES"<<endl;
}
else{
cout<<"NO"<<endl;
}
return 0;
}
解决方案
您的代码可能不起作用,因为这一行:
if(atacks[i]==enemies[i])
需要匹配attack
并且enemy
在它们的数组中应该有相同的索引。
enemies
正如评论中所建议的,您需要为 EACH遍历 ALL attack
,即“O(n*k) 解决方案”
推荐阅读
- groovy - 基于匹配计数值,需要将以下值捕获到变量中
- c# - 返回另一个解决方案中的类的实例
- javascript - 单击按钮时不调用方法
- c# - 我的项目在 Visual Studio 中工作,但在系统上安装后无法工作
- c# - 列表只打印最后一个元素
- python-3.x - 如何遍历字典以获取特定键,然后将其添加到新字典
- ldap - 当基本 DN 的最低元素只是组 CN 时,LDAP 搜索过滤器字符串和基本 DN 语法组合以获取匹配“sAMAccountName”的用户?
- javascript - 如何在 vue.js 中提示自动完成
- flask - 与不同端口共享烧瓶会话
- python - 与 python 共享库