599. Minimum Index Sum of Two Listsphp
给定两个数组,返回其交集,在交集中返回他们在各自数组的下标之和最小。数组
由于去找一个元素在不在另外一个数组的话,须要逐个比较。所以咱们在这里先把两个数组都翻过来,用isset函数去判断是否存在元素。函数
在循环体外保存最小和,判断两个相同的元素的下标之和是否小于最小值。是则替换,并置空交集数组。不然判断是否相等于当前最小值。相等则追加进交集数组。不相等说明大于最小值,抛弃便可。.net
<?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; } }
若以为本文章对你有用,欢迎用爱发电资助。code