五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

解題報告 - LeetCode 兩個數組的交集II

2022-09-28 07:35 作者:大濤先生_  | 我要投稿

解題報告 ? ?- Copy

LeetCode 兩個數組的交集II

@TOC

題目描述

?給你兩個整數數組 nums1nums2 ,請你以數組形式返回兩數組的交集。返回結果中每個元素出現的次數,應與元素在兩個數組中都出現的次數一致(如果出現次數不一致,則考慮取較小值)??梢圆豢紤]輸出結果的順序。

兩個數組的交集II
示例:

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

提示:

11?<=?nums1.length,?nums2.length?<=?1000
20?<=?nums1[i],?nums2[i]?<=?1000
3

一、解題關鍵詞

1返回數組?出現次數?考慮取比較小的數值

二、解題報告

1.思路分析

  1. 兩個數組肯定需要遍歷兩次,

  2. 注意控制遍歷順序,比較稍微短些到數組(需要取交集)

  3. 記錄當前數字 +出現次數

  4. 兩次循環(huán) 取交集

2.時間復雜度

3.代碼示例

1class?Solution?{
2????//二分思想
3????public?int[]?intersect(int[]?nums1,?int[]?nums2)?{
4????????int?len1?=?nums1.length;
5????????int?len2?=?nums2.length;
6
7????????if?(len1>?len2){
8????????????return?intersect(nums2,nums1);
9????????}
10????????Map<Integer,Integer>?map?=?new?HashMap<Integer,Integer>();
11
12????????for?(int?num:nums1){
13????????????int?count?=?map.getOrDefault(num,0)?+?1;
14????????????map.put(num,count);
15????????}
16????????int?[]?resNum?=?new??int[len1];
17????????int?index?=?0;
18
19????????for?(int?num?:?nums2){
20????????????int?count?=?map.getOrDefault(num,0);
21????????????if?(count?>?0){
22????????????????resNum[index++]?=?num;
23????????????????count?--;
24????????????????if?(count?>?0){
25????????????????????map.put(num,count);
26????????????????}else{
27????????????????????map.remove(num);
28????????????????}
29????????????}
30????????}
31????????return?Arrays.copyOfRange(resNum,??0,index);
32????}
33}

4.知識點

1map這個數據結構遍歷方式有四種
21、keyset
32、entrySet(推薦)
43、iterator
54、map.values(


解題報告 - LeetCode 兩個數組的交集II的評論 (共 條)

分享到微博請遵守國家法律
淮阳县| 安西县| 高雄市| 天祝| 荣昌县| 柘城县| 平度市| 茶陵县| 布尔津县| 阿鲁科尔沁旗| 英超| 普宁市| 万年县| 正镶白旗| 商水县| 庐江县| 长泰县| 米易县| 锦州市| 邯郸县| 黄陵县| 社旗县| 苏州市| 乐至县| 昭通市| 铁岭县| 定州市| 浏阳市| 资溪县| 桃江县| 来安县| 赤城县| 阳泉市| 莆田市| 凤山县| 哈尔滨市| 宣恩县| 宣城市| 河曲县| 清原| 射阳县|