日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

leetcode350. 两个数组的交集 II

發(fā)布時(shí)間:2023/12/13 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode350. 两个数组的交集 II 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

給定兩個(gè)數(shù)組,編寫(xiě)一個(gè)函數(shù)來(lái)計(jì)算它們的交集。

示例 1:

輸入: nums1 = [1,2,2,1], nums2 = [2,2]
輸出: [2,2]
示例 2:

輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
輸出: [4,9]
說(shuō)明:

輸出結(jié)果中每個(gè)元素出現(xiàn)的次數(shù),應(yīng)與元素在兩個(gè)數(shù)組中出現(xiàn)的次數(shù)一致。
我們可以不考慮輸出結(jié)果的順序。
進(jìn)階:

如果給定的數(shù)組已經(jīng)排好序呢?你將如何優(yōu)化你的算法?
如果?nums1?的大小比?nums2?小很多,哪種方法更優(yōu)?
如果?nums2?的元素存儲(chǔ)在磁盤(pán)上,磁盤(pán)內(nèi)存是有限的,并且你不能一次加載所有的元素到內(nèi)存中,你該怎么辦?

思路:相似題:leetcode349. 兩個(gè)數(shù)組的交集

但是這個(gè)題set解決不了問(wèn)題了。用map記錄出現(xiàn)的次數(shù)即可。

class Solution {public int[] intersect(int[] nums1, int[] nums2) {if (nums1.length > nums2.length) {return intersect(nums2, nums1);}HashMap<Integer, Integer> m = new HashMap<>();for (int n : nums1) {m.put(n, m.getOrDefault(n, 0) + 1);}int k = 0;for (int n : nums2) {int cnt = m.getOrDefault(n, 0);if (cnt > 0) {nums1[k++] = n;m.put(n, cnt - 1);}}return Arrays.copyOfRange(nums1, 0, k);} }

?

總結(jié)

以上是生活随笔為你收集整理的leetcode350. 两个数组的交集 II的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。