两数组找相同的元素-array

这篇博客探讨了如何找出两个数组中的共同元素,通过示例数据11, 3, 9来阐述。" 100541991,8672077,Android应用安装详解:普通与静默安装,"['Android开发', '权限管理', '静默安装', '应用安装']
两数组找相同的元素-array
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
给两个整数(int)数组,输出相同的元素。
输入
给定两个整型数组[a1, a2, ...., am],[b1, b2, ..., bn]
输入格式如下,第一行给定第一个数组的大小m,接下来的m行为其数组元素a1 -- am,每行一个元素;第m+1行为第二个数组的大小n,接下来的n行为其数组元素b1 -- bn,也是每行一个元素。示例如下:
m
a1
a2

am
n
b1
b2

bn

输出
两个数组中相同的元素,以空格分隔在一行中显示,显示顺序为其在第二个数组中出现的顺序。


样例输入
5
11
15
9
12
3
4
11
3
9
7


样例输出

11 3 9

package com.main;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
//两数组找相同的元素-array
//用ArrayList解决
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int m = sc.nextInt();
		List<Long> listM = new ArrayList<Long>();
		while ((m--) != 0) {
			long element = sc.nextLong();
			listM.add(element);
		}

		List<Long> resList = new ArrayList<Long>();

		int n = sc.nextInt();
		while ((n--) != 0) {
			long element = sc.nextLong();
			if (listM.contains(element)) {//判断是否存在
				resList.add(element);
			}
		}

		for (int i = 0; i < resList.size(); i++) {
			System.out.print(resList.get(i)+" ");
		}
	}//main
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
//两数组找相同的元素-array
//用HashMap解决
public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int m = sc.nextInt();
		Map<Long, String> mapM = new HashMap<Long, String>();
		while ((m--) != 0) {
			mapM.put(sc.nextLong(), "");
		}

		int n = sc.nextInt();
		List<Long> resList = new ArrayList<Long>();
		while ((n--) != 0) {
			long element = sc.nextLong();
			if (mapM.containsKey(element)) {
				resList.add(element);
			}
		}
		for (int i = 0; i < resList.size(); i++) {
			System.out.print(resList.get(i) + " ");
		}
	}
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值