1 package solution46;
 2 import java.util.*;
 3 class Solution {
 4     public long solution(int n,long[] nums) {
 5         long  maxNum = 0;
 6         long  maxSecNum = 0;
 7         HashMap<Long,Integer> map=new HashMap<Long,Integer>();
 8         for(long i:nums){
 9             if(!map.containsKey(i)) map.put(i,1);
10             else map.put(i,map.get(i)+1);
11         }
12         for (long key : map.keySet()) {
13             if(map.get(key)>1){
14                 if(key >maxSecNum){
15                     if(key>maxNum){
16                         maxSecNum = maxNum;
17                         maxNum = key;
18                     }else{
19                         maxSecNum = key;
20                     }
21                 }
22             }
23         }
24         if(map.get(maxNum) != null && map.get(maxNum)>=4) return(maxNum*maxNum);
25         return(maxNum*maxSecNum);  
26     }
27 }

算法思路:hash。

注意12行的循环,是从hashmap的key集合中循环,每个key只循环一次。

posted on 2020-03-07 08:20  Sempron2800+  阅读(155)  评论(0编辑  收藏  举报