首页 > 其他 > 详细

LeetCode Missing Number

时间:2015-10-15 00:58:41      阅读:179      评论:0      收藏:0      [点我收藏+]

原题链接在这里:https://leetcode.com/problems/missing-number/

第一种方法是 求和,然后挨个减掉,剩余的值就是结果,因为如果是全的,那么sum = n*(n+1)/2.

第二种方法是从前往后做bit Manipulation, res初始为0,每次保留结果 和 (i+1)^nums[i] 取结果,方法非常巧妙。

AC Java:

 1 public class Solution {
 2     public int missingNumber(int[] nums) {
 3         /*
 4         //Method 1
 5         if(nums == null || nums.length == 0){
 6             return 0;
 7         }
 8         int n = nums.length;
 9         int sum = 0;
10         for(int i = 0; i<nums.length; i++){
11             sum+=nums[i];
12         }
13         return n*(n+1)/2 - sum;
14         */
15         //Method 2
16         if(nums == null || nums.length == 0){
17             return 0;
18         }
19         int res = 0;
20         for(int i = 0; i<nums.length; i++){
21             res ^= (i+1)^nums[i];
22         }
23         return res;
24     }
25 }

 

LeetCode Missing Number

原文:http://www.cnblogs.com/Dylan-Java-NYC/p/4881177.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!