难度:【简单】
- 常规笨方法做一遍:先遍历一遍记录到哈希表中,再从1到n遍历一遍,不在哈希表中的记入返回数组中,时空复杂度都是O(n)。
- 尝试优化空间复杂度到O(1):先填满返回数组,再遍历原数组,原数组中出现的元素删掉。也是朴素的笨方法,所以超出了时间限制。这让我体会到了数组查找元素的时间代价。
- 抄一遍官方解法:我用java写的,nums数组的值会被修改(和python很像)。回到调用处修改后的值也未必与函数执行结果一致,可能是有缓存。入参的值是否会改变,我在vscode做了实验确实会变,一般应与被调用函数的结果一致,当IDE中有缓存时就不一定了,我测试的结果就是残留了上次测试的赋值结果,如果打包后独立运行可能值就是对的?