找到所有数组中消失的数字 2025-08-11 作者 Y Y 645 字 本文最后编辑于 前,其中的内容可能需要更新。 找到所有数组中消失的数字 题目 12345678910给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果示例 1:输入:nums = [4,3,2,7,8,2,3,1]输出:[5,6]示例 2:输入:nums = [1,1]输出:[2] 解法 123456789101112131415161718192021222324思路:直接遍历1-n的数组,然后in_array,会导致超时,相当于遍历了n*n次正确方法是array_flip翻转key和value,查看1-n是否是新数组的下标,相当于遍历n次代码:/** * @param Integer[] $nums * * @return Integer[] */function findDisappearedNumbers($nums){ $count = count($nums); $nums = array_flip($nums); $arr = []; for ($i = 1; $i <= $count; $i++) { if (!isset($nums[$i])) { $arr[] = $i; } } return $arr;} < 上一篇 下一篇 >