考试题 2 求交集 Time Limit:1000MS Memory Limit:65535K 题型: 编程题 语言: G++;GCC 描述 用顺序表表示集合,集合元素为整型数据,设计一个算法实现两个集合的求交集运算。 输入格式 第一行:集合A和集合B的元素个数n,m 第二行:集合A的n个元素 第三行:集合B的m个元素 输出格式 输出:第一行:集合A,B的交集元素(要求按照元素在A集合中出现的次序输出),如果交集为空则输出null 样例1: 输入: 5 3 6 3 90 1 88 88 1 2 输出: 1 88 输入样例 5 3 6 3 90 1 88 33 44 55
时间: 2023-06-12 17:05:12 浏览: 177
以下是Golang实现的代码,使用了map作为辅助数据结构,时间复杂度为O(n+m)。
```go
package main
import "fmt"
func main() {
var n, m int
fmt.Scan(&n, &m)
set := make(map[int]bool)
for i := 0; i < n; i++ {
var x int
fmt.Scan(&x)
set[x] = true
}
var cnt int
for i := 0; i < m; i++ {
var x int
fmt.Scan(&x)
if set[x] {
fmt.Printf("%d ", x)
cnt++
}
}
if cnt == 0 {
fmt.Println("null")
}
}
```
相关问题
考试题 9 圆覆盖 Time Limit:10000MS Memory Limit:65535K 题型: 编程题 语言: G++;GCC;VC 描述 圆覆盖了多少个整数座标点 在笛卡尔坐标系上,以原点为圆心,R为半径的圆,问该圆内有多少个整数坐标点(即横纵坐标均为整数) 例如R为2.5,则该圆内有21个整数坐标点 注:点在圆内是指点到圆心的距离小于圆半径 输入格式 输入一个浮点数为圆半径R,R<=1000000 输出格式 输出圆内整数坐标点的个数 输入样例 2.5 输出样例 21
下面是一个 C++ 的代码实现:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double R;
cin >> R;
int cnt = 0;
for (int i = -int(R); i <= int(R); i++) {
for (int j = -int(R); j <= int(R); j++) {
if (i * i + j * j <= R * R) {
cnt++;
}
}
}
cout << cnt << endl;
return 0;
}
```
首先,读入圆的半径 `R`,然后对于每个整数坐标 $(i,j)$,计算其到圆心的距离 $d = \sqrt{i^2 + j^2}$,如果 $d \leq R$,则该点在圆内,计数器 `cnt` 加一。最后输出计数器的值即可。
阅读全文