前言
用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
}
该博客介绍了一种用Scala实现两个数组交集的方法。通过创建一个HashMap存储nums1数组中元素的出现次数,然后遍历nums2,查找并减少map中对应元素的计数,最终得到交集。示例展示了对于输入如[1,2,2,1]和[2,2],输出为[2,2]。

1754

被折叠的 条评论
为什么被折叠?



