LC_599

今天是一道简单的hash题目

题目如下

 

代码如下

 1 class Solution {
 2     public String[] findRestaurant(String[] list1, String[] list2) {
 3         Map<String,Integer> s1Map = new HashMap<String,Integer>();
 4         int len = list1.length;
 5         for(int i = 0; i < len; i++){
 6             s1Map.put(list1[i],i);
 7         }
 8         List<String> ret = new ArrayList<>();
 9         int minIdx = -1;
10         for(int i = 0; i < list2.length; i++){
11             String str = list2[i];
12             if(minIdx != -1 && i > minIdx){
13                 break;
14             }
15             if(s1Map.containsKey(str)){
16                 int idx = s1Map.get(str) + i;
17                 if(minIdx == -1){
18                     ret.add(str);
19                     minIdx = idx;
20                 }else if(idx < minIdx){
21                     ret.clear();
22                     ret.add(str);
23                     minIdx = idx;
24                 }else if(idx == minIdx){
25                     ret.add(str);
26                 }
27                 //minIdx = idx;
28             }
29         }
30         return ret.toArray(new String[ret.size()]);
31     }
32 }

疫情快点结束吧,我还得上班呢。

 

posted @ 2022-03-14 16:47  雨下_整夜  阅读(26)  评论(0)    收藏  举报