448。找出所有数组中消失的数字链接:https://leetcode-cn.com/probl...难度:简单题目描述给定一个范围在一个整数数组中1≤a[i]≤n(n=arraysize),数组中有的元素出现了两次,有的只出现了一次。查找范围[1,n]中未出现在数组中的所有数字。你能在不使用额外空间的情况下以O(n)的时间复杂度做到这一点吗?您可以假设返回的数组不计入额外空间。示例输入:[4,3,2,7,8,2,3,1]输出:[5,6]抽屉原理:一萝卜一坑1.数组中的每个元素都有其匹配对应的数组下标(比如元素2,它对应的数组下标是1),我们要获取的是那些没有匹配到元素的数组下标/***drawerprinciple*@paramInteger[]$nums*@returnInteger[]*/函数findDisappearedNumbers($nums){$len=count($nums);#用下标匹配数组元素#下标与元素的关系[element-1=subscript]for($i=0;$i<$len;$i++){$index=($nums[$i]-1)%$len;$nums[$index]+=$len;}$res=[];#获取没有匹配的下标for($i=0;$i<$len;$i++){if($nums[$i]<=$len){$res[]=$i+1;}}返回$资源;}
