使用kotlin解决这个问题:350. 两个数组的交集 II 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[4,9] 提示: 1 <= nums1.length, nums2.length <= 1000 0 <= nums1[i], nums2[i] <= 1000
时间: 2024-02-18 08:06:16 浏览: 156
下面是使用 Kotlin 解决 LeetCode 350. 两个数组的交集 II 的代码:
```kotlin
fun intersect(nums1: IntArray, nums2: IntArray): IntArray {
val map = mutableMapOf<Int, Int>()
for (num in nums1) {
map[num] = map.getOrDefault(num, 0) + 1
}
val result = mutableListOf<Int>()
for (num in nums2) {
if (map.containsKey(num) && map[num]!! > 0) {
result.add(num)
map[num] = map[num]!! - 1
}
}
return result.toIntArray()
}
```
首先,我们使用一个 `Map` 来记录 `nums1` 中每个元素出现的次数。然后,我们遍历 `nums2` 中的每个元素,如果该元素在 `Map` 中存在,并且出现次数大于 `0`,则将其添加到结果列表中,并将其在 `Map` 中的出现次数减 `1`。最后,我们将结果列表转换为整数数组并返回。
注意:由于题目要求返回的交集中每个元素出现的次数应与元素在两个数组中都出现的次数一致,因此我们在使用 `Map` 记录 `nums1` 中每个元素出现次数时,应该将重复出现的元素计数,而不是只记录它们出现的次数。
阅读全文
相关推荐


















