码迷,mamicode.com
首页 > 其他好文 > 详细

268. Missing Number

时间:2016-06-25 12:14:11      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

    /*
     * 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

标签:

原文地址:http://www.cnblogs.com/zmyvszk/p/5616028.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!