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"]
["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).
Note:
- The length of both lists will be in the range of [1, 1000].
- The length of strings in both lists will be in the range of [1, 30].
- The index is starting from 0 to the list length minus 1.
- No duplicates in both lists.
本题的意思是求在两个数组中,下标之和最小且字符串相等的字符串列表。
class Solution {
public String[] findRestaurant(String[] list1, String[] list2) {
int min=Integer.MAX_VALUE;
int j=0;
List<String> reList=new ArrayList<String>();//声明用于存储相同的字符串且下标之和最小
List<String>strList1=Arrays.asList(list1);//数组转换成字符串
List<String>strList2=Arrays.asList(list2);
for(int i=0;i<strList1.size();i++){
if(strList2.contains(strList1.get(i))){
int k=strList2.indexOf(strList1.get(i));
if(i+k<=min){
reList.add(strList1.get(i));
min=i+k;
}
}
}
String[] str=new String[reList.size()];
reList.toArray(str);
return str;
}
}