• 599. Minimum Index Sum of Two Lists


    Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of favorite restaurants represented by strings.

    You need to help them find out their common interest with the least list index sum. If there is a choice tie between answers, output all of them with no order requirement. You could assume there always exists an answer.

    Example 1:

    Input:
    ["Shogun", "Tapioca Express", "Burger King", "KFC"]
    ["Piatti", "The Grill at Torrey Pines", "Hungry Hunter Steakhouse", "Shogun"]
    Output: ["Shogun"]
    Explanation: The only restaurant they both like is "Shogun".
    

    Example 2:

    Input:
    ["Shogun", "Tapioca Express", "Burger King", "KFC"]
    ["KFC", "Shogun", "Burger King"]
    Output: ["Shogun"]
    Explanation: The restaurant they both like and have the least index sum is "Shogun" with index sum 1 (0+1).


    输出两个字符串数组共有的字符串,要求索引之和最小

    C++(92ms):
     1 class Solution {
     2 public:
     3     vector<string> findRestaurant(vector<string>& list1, vector<string>& list2) {
     4         vector<string> res ;
     5         unordered_map<string,int> Map ;
     6         int Min = INT_MAX ;
     7         for(int i = 0 ; i < list1.size() ; i++){
     8             Map[list1[i]] = i ;
     9         }
    10         for(int i = 0 ; i < list2.size() ; i++){
    11             if (Map.count(list2[i])){
    12                 if (Map[list2[i]] + i < Min ){
    13                     Min = Map[list2[i]] + i ;
    14                     res.clear();
    15                     res.push_back(list2[i]) ;
    16                 }else if(Map[list2[i]] + i == Min ){
    17                     res.push_back(list2[i]) ;
    18                 }
    19             }
    20         }
    21         return res ;
    22     }
    23 };

    Java(29ms):

     1 class Solution {
     2     public String[] findRestaurant(String[] list1, String[] list2) {
     3         HashMap<String,Integer> Map = new HashMap() ;
     4         LinkedList<String> res = new LinkedList() ;
     5         int Min = Integer.MAX_VALUE ;
     6         for(int i = 0 ; i < list1.length ; i++){
     7             Map.put(list1[i] , i) ;
     8         }
     9         for(int i = 0 ; i < list2.length ; i++){
    10             if (Map.containsKey(list2[i])){
    11                if (Map.get(list2[i]) + i < Min){
    12                    Min = Map.get(list2[i]) + i ;
    13                    res.clear() ;
    14                    res.add(list2[i]) ;
    15                }else if (Map.get(list2[i]) + i == Min){
    16                    res.add(list2[i]) ;
    17                }
    18             }
    19         }
    20         return res.toArray(new String[res.size()]) ;
    21     }
    22 }
  • 相关阅读:
    通过Navicat导入SQLServer的MDF文件和LDF文件
    ubantu系统出现登录界面死循环处理办法
    ubantu系统修改权限失败,导致只能客人会话登录解决办法
    redis基础
    ubantu安装MySQL,并未出现设置root密码的提示--》少年,请不要乱改密码!
    ngx_http_access_module模块说明
    一些常用的ngx_http_core_module介绍
    八、location匹配规则
    七、nginx的虚拟主机配置
    六、nginx的配置文件说明
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/7783316.html
Copyright © 2020-2023  润新知