Leetcode PHP題解--D117 599. Minimum Index Sum of Two Lists
阿新 • • 發佈:2019-09-04
D117 599. Minimum Index Sum of Two Lists
題目連結
599. Minimum Index Sum of Two Lists
題目分析
給定兩個陣列,返回其交集,在交集中返回他們在各自陣列的下標之和最小。
思路
因為去找一個元素在不在另一個數組的話,需要逐個比較。因此我們在這裡先把兩個陣列都翻過來,用isset函式去判斷是否存在元素。
在迴圈體外儲存最小和,判斷兩個相同的元素的下標之和是否小於最小值。是則替換,並置空交集陣列。否則判斷是否相等於當前最小值。相等則追加進交集陣列。不相等說明大於最小值,拋棄即可。
最終程式碼
<?php class Solution { /** * @param String[] $list1 * @param String[] $list2 * @return String[] */ function findRestaurant($list1, $list2) { $list1 = array_flip($list1); $list2 = array_flip($list2); $min = 99999999999; $intersect = []; foreach($list1 as $name => $v){ if(!isset($list2[$name])){ continue; } if($v+$list2[$name] < $min){ $min = $v + $list2[$name]; $intersect = [$name]; } else if($v+$list2[$name] == $min){ $intersect[] = $name; } } return $intersect; } }