国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

解題報告 - 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的評論 (共 條)

分享到微博請遵守國家法律
苏州市| 赣榆县| 汉沽区| 道真| 铜梁县| 禹州市| 个旧市| 梁河县| 年辖:市辖区| 柏乡县| 伊宁县| 城口县| 泽州县| 靖边县| 隆安县| 上蔡县| 乌兰察布市| 册亨县| 周宁县| 彭水| 卫辉市| 治多县| 沂南县| 松桃| 土默特左旗| 江门市| 石家庄市| 阳朔县| 洪泽县| 太原市| 红安县| 叶城县| 万安县| 丹凤县| 孙吴县| 毕节市| 香河县| 枞阳县| 海丰县| 砚山县| 中西区|