7-4 找出不是两个数组共有的元素(20 分)

7-4 找出不是两个数组共有的元素(20 分)

给定两个整型数组,本题要求找出不是两者共有的元素。

输入格式:

输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。

输出格式:

在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。

输入样例:

10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1

输出样例:

3 5 -15 6 4 1
思路:作为C++中STL的练习记录一下吧,刚开始看到输出没有排序,所有用了unordered_set,但是发现这个容器说无序还真的是无序!但不是按照输入顺序来所有还是需要借助数组来保存输入序列。还有就是好像集合并交叉那些似乎都不太实用,性价比最高还是find();
#include<iostream>
#include<cstdio>
#include<vector>
#include<string>
#include<unordered_set>

#include<algorithm>
using namespace std;
int main()
{
    unordered_set<int>se1, se2;
    int a[30], b[30];
    int n1, n2, num; cin >> n1;
    for (int i = 0; i < n1; i++)
    {
        cin >> num;
        a[i] = num;
        se1.insert(num);
    }
    cin >> n2;
    for (int i = 0; i < n2; i++)
    {
        cin >> num;
        b[i] = num;
        se2.insert(num);
    }

    unordered_set<int>::iterator iter;
    int flag = 1;
    for (int i = 0; i < n1;i++){

        if (se2.find(a[i]) != se2.end())
            continue;
        if (flag == 1){ cout << a[i]; flag = 0; }
        else cout << " " << a[i];
        se2.insert(a[i]);
    }

    for (int i = 0; i < n2;i++){

        if (se1.find(b[i]) != se1.end())
            continue;
        if (flag == 1){ cout << b[i]; flag = 0; }
        else cout << " " << b[i];
        se1.insert(b[i]);
    }
    if (flag != 1)cout << endl;

    return 0;
}
 

原文地址:https://www.cnblogs.com/zengguoqiang/p/8640765.html

时间: 2024-10-03 09:12:33

7-4 找出不是两个数组共有的元素(20 分)的相关文章

实验7-1-4-一维数组 找出不是两个数组共有的元素 (20 分)

给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤),随后是N个整数,其间以空格分隔. 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格.题目保证至少存在一个这样的数字.同一数字不重复输出. 输入样例: 10 3 -5 2 8 0 3 5 -15 9 100 11 6 4 8 2 6 -5 9 0 100 8 1 输出样例: 3 5 -15 6 4 1 1 #includ

数组-06. 找出不是两个数组共有的元素(20)

1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int i,j,k=0,l,a[20],b[20],c[40],m,n; 5 cin>>m; 6 for(i=0;i<m;++i) 7 cin>>a[i]; 8 cin>>n; 9 for(j=0;j<n;++j) 10 cin>>b[j]; 11 12 for(i=0;i<m;++i){ 13 for(j=0

数组-06. 找出不是两个数组共有的元素

数组-06. 找出不是两个数组共有的元素(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 张彤彧(浙江大学) 给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在2行中给出2个整型数组,每行先给出正整数N(<=20),随后是N个整数,其间以空格分隔. 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格.题目保证至少存在一个这样的数字.同一数字不重复

找出不是两个数组共有的元素

1)题目要求同一数字不重复输出.所以必须将不同的数字存在另一个数组中,再将这个数组重新判断是否出现相同数字,最后输出: 2)for (i = 1; i < k; i++) { for (j = 0; j < i; j++) { if (c[i] == c[j])break;//判断是否重复: } if (j == i)printf(" %d", c[i]); } 3) 原文地址:https://www.cnblogs.com/linhai123/p/12053886.htm

array_intersect() php筛选两个数组共有的元素

我们已经讲过如何筛选出连个数组中不共有的元素,今天就来看看php如何筛选出两个数组中共有的元素,例如筛选$array1和$array2共有的元素. 函数名:array_intersect(): 调用方式:array_intersect($array1,$array2): 实例: <?php    $array1 = array("a" => "green", "red", "blue", "grey&qu

找出两个数组相同的元素

题目:找出两个数组(有重)相同的元素,两种方法 public class 出两个数组相同的元素 { public static void main(String[] args) { // TODO Auto-generated method stub String[] test1 = {"damon","happy","ly","good","losers"}; String[] test2 = {&quo

找出两个数组相同的元素,并且对应的个数一样

/** * 找出两个数组相同的元素,并且对应的个数一样 * @param args */ public static void getSameNumberCount(String[] a, String[] b) { Map<String, Integer> map = new HashMap<String, Integer>(); for (int i = 0; i < a.length; i++) { if (!map.containsKey(a[i])) { map.p

位运算-异或运算-只出现一次的数字-给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 示例: 输入: [2,2,1] 输出: 1 输入: [4,1,2,1,2] 输出: 4 GO: func singleNumber(nums []int) int { var num int for i := 0; i < len(nums); i++ { num = num ^ nums[i]; } return num; } PHP: class Solution { /** * @par

[PY3]——找出一个序列中出现次数最多的元素/collections.Counter 类的用法

问题 怎样找出一个序列中出现次数最多的元素呢? 解决方案 collections.Counter 类就是专门为这类问题而设计的, 它甚至有一个有用的 most_common() 方法直接给了你答案 collections.Counter 类 1. most_common(n)统计top_n from collections import Counter words = [ 'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes', 't