268. Missing Number

Posted 我的名字叫周周

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了268. Missing Number相关的知识,希望对你有一定的参考价值。

    /*
     * 268. Missing Number 
     * 2016-6-24 by Mingyang
     * 占位问题2,多次遇到过了,注意nums[i]不能大于nums.length, 
* 并且注意几个特殊条件,比如只有一个0,只有一个1 * 这里是01234所以我们index从0开始的 * 注意换位不能用一个temp来换哦,nums[i]随时在变化!!!只能用一个函数来
*/ public static int missingNumber(int[] nums) { if (nums == null || nums.length == 0) return 0; int res = 0; boolean find = false; for (int i = 0; i < nums.length; i++) { if (nums[i] != i && nums[i] < nums.length) { swap1(nums, nums[i], i); i--; } } for (int i = 0; i < nums.length; i++) { if (nums[i] != i) { return i; } } return nums[nums.length - 1] + 1;
//这个就是来预防只有一个0或者最后一位缺乏的情况! } //这个题目大神的做法是位运算:因为假如只有01235-> //结果是0^1^2^3^5^0^1^2^3^4^5 剩下的就是4,因为index 4已经出现了 public int missingNumber1(int[] nums) { int res=nums[0]; for(int i=1;i<nums.length;++i) res^=nums[i]; for(int i=0;i<=nums.length;++i) res^=i; return res; }

 

以上是关于268. Missing Number的主要内容,如果未能解决你的问题,请参考以下文章

268. Missing Number

Leetcode-268 Missing Number

268 Missing Number

LeetCode:268. Missing Number

268. Missing Number

268. Missing Number