英文网站域名注册,刚做的网站为什么搜索不到,注册网站挣钱,开办网站需要什么手续★448. 找到所有数组中消失的数字
使用数组本身当作哈希表
考虑让nums数组本身当作哈希表。 遍历nums#xff0c;每遇到一个数x#xff0c;就让在x-1位置处的数n。 再次遍历nums#xff0c;如果遇到i位置上数nums[i]不大于n#xff0c;则i1并没有出现。
eg#xff1a; …★448. 找到所有数组中消失的数字
使用数组本身当作哈希表
考虑让nums数组本身当作哈希表。 遍历nums每遇到一个数x就让在x-1位置处的数n。 再次遍历nums如果遇到i位置上数nums[i]不大于n则i1并没有出现。
eg n 4下标从0开始 1 2 2 3 ⬇ ⬇ ⬇ ⬇ 5 6 6 3 ⬇ 10
遇到1在1-10位置上加4变成5 遇到2在2-11位置上加4变成6 遇到2在2-11位置上加4变成10 遇到3在3-12位置上加4变成6
然后再次遍历nums发现只有在3位置上不大于4所以314这个数未出现。
class Solution {public ListInteger findDisappearedNumbers(int[] nums) {/**考虑让nums数组本身当作哈希表。遍历nums每遇到一个数x就让在x-1位置处的数n。再次遍历nums如果遇到i位置上数nums[i]不大于n则i1并没有出现。*/ListInteger list new ArrayList();int n nums.length;for(int i0;inums.length;i){int x (nums[i] - 1) % n; //可能加多次nums[x] n;}for(int i0;inums.length;i){if(nums[i] n)list.add(i1);}return list;}
}