问题描述
题目描述
请你编写一个程序,判断给定的整数 n 是否存在于给定的集合中。
输入描述
有多组测试数据,第一行有一个整数 k,代表有 k 组测试数据。
每组数据第一行首先是一个正整数 m,表示集合中元素的数量(1 <= m <= 1000)。
接下来一行包含 m 个整数,表示集合中的元素。
最后一行包含一个整数 n,表示需要进行判断的目标整数。
输出描述
包含多组输出,每组输出占一行。
如果集合中存在 m,输出“YES”,否则输出“NO”。
输入示例
2
5
1 2 3 4 5
3
6
1 2 3 4 5 6
7
输出示例
YES
NO
python解法
# 读取测试用例的数量
k = int(input())
for _ in range(k):
# 读取集合中元素的数量
m = int(input())
# 读取集合中的元素,用空格分隔并转换为整数集合
elements = set(map(int, input().split()))
# 读取需要判断的目标整数
n = int(input())
# 判断目标是否在集合内
print("YES") if n in elements else print("NO")
C++解法
#include <iostream>
#include <unordered_set>
int main(){
int k, n, val, m;
// 获取测试用例组数
std::cin >> k;
while (k--){
// 获取集合元素个数
std::cin >> n;
// 创建一个无序的集合
std::unordered_set<int> uset;
// 将元素插入到集合中
while (n--){
std::cin >> val;
uset.insert(val);
}
std::cin >> m;
// 使用find()方法查询m是否在set里
if (uset.find(m) != uset.end())
std::cout << "YES" << std::endl;
else
std::cout << "NO" << std::endl;
}
}