前言
用scala的语法实现两个数组的交集 II
一、两个数组的交集 II 是什么?
给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[4,9]
二、具体实现
代码如下:
def main(args: Array[String]): Unit = { var nums1=Array(1,2,2,1) var nums2=Array(2,2) println(intersect(nums1,nums2).toBuffer) } def intersect(nums1: Array[Int], nums2: Array[Int]): Array[Int] = { val map = HashMap[Int, Int]() val arr: ArrayBuffer[Int] = new ArrayBuffer[Int] //将每个nums1中的元素出现的个数放入map中 for (item <- nums1) { if (map.contains(item)) map.put(item, map.get(item).get + 1) else map.put(item, 1) } //遍历nums2中的值,从map中查找,如何map中存在,将这个元素加到arr中,并给map的值进行-1操作 for (item <- nums2) { if (map.contains(item) && map.get(item).get > 0) { //map.get()方法返回Some类型,需要get方法取出值 arr += item map.put(item,map.get(item).get-1) } } arr.toArray }