考试题 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 08:05:12 浏览: 64
以下是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` 加一。最后输出计数器的值即可。
6-4 数据结构-顺序表-学生的成绩信息(todo:seqlist 逆转, gcc )分数 20全屏浏览题
题目要求我们使用顺序表来存储学生的成绩信息,并且要求我们实现顺序表的逆转操作。
首先,顺序表是一种线性结构,可以用来存储相同类型的数据。在这里,我们可以使用一个一维数组来实现顺序表。每个数组元素代表一个学生的成绩信息。
然后,我们需要实现顺序表的逆转操作。逆转操作即将原本按照顺序存储的数据反向存储。可以通过交换数组元素位置的方式来实现逆转操作。我们可以使用两个指针,一个指向顺序表的头部,另一个指向尾部,然后交换它们指向的元素,并逐步移动指针位置,直到两指针相遇或者交叉。
最后,我们要进行gcc编译,gcc是一种流行的C语言编译器,可以将C语言代码编译为可执行文件。通过gcc编译后,我们可以执行生成的可执行文件,从而运行我们编写的程序。
总结一下,题目要求我们使用顺序表来存储学生的成绩信息,并实现顺序表的逆转操作。我们可以使用一维数组作为顺序表,通过交换数组元素的方式实现逆转。最后,我们需要使用gcc编译器对代码进行编译,以生成可执行文件并运行程序。