題目
假設Andy和Doris想在晚餐時選擇一家餐廳,並且他們都有一個表示最喜愛餐廳的列表,每個餐廳的名字用字串表示。
你需要幫助他們用最少的索引和找出他們共同喜愛的餐廳。 如果答案不止一個,則輸出所有答案並且不考慮順序。 你可以假設總是存在一個答案。
示例1
輸入:
[“Shogun”, “Tapioca Express”, “Burger King”, “KFC”]
[“Piatti”, “The Grill at Torrey Pines”, “Hungry Hunter Steakhouse”, “Shogun”]
輸出: [“Shogun”]
解釋: 他們唯一共同喜愛的餐廳是“Shogun”。
解題思路
- 遍歷其中一個陣列
- 並檢查該陣列元素在另一個陣列是否在
- 存在對儲存索引和
- 比較索引大小
程式碼
class Solution {
public String[] findRestaurant(String[] list1, String[] list2) {
List<String> strSet2 = Arrays.asList(list1);
List<String> result = new ArrayList<>();
int indexSum = 0;
for (int i=0; i< list2.length; i++){
if(strSet2.contains(list2[i])){
if(result.isEmpty()){
result.add(list2[i]);
indexSum = i+ strSet2.indexOf(list2[i]);
}else if((strSet2.indexOf(list2[i])+i) == indexSum){
result.add(list2[i]);
}else if((strSet2.indexOf(list2[i])+i) < indexSum){
result.clear();
result.add(0, list2[i]);
indexSum = strSet2.indexOf(list2[i])+1;
}
}
}
return result.toArray(new String[0]);
}
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結