Leetcode题解 268. Missing Number

来源:互联网 发布:php高级工程师证书 编辑:程序博客网 时间:2024/06/07 10:10

Given an array containing n distinct numbers taken from 0, 1, 2, …, n, find the one that is missing from the array.

For example,
Given nums = [0, 1, 3] return 2.

解法一:(用等差数列的做法)

public class Solution {    public int missingNumber(int[] nums) {        int sum=nums.length*(nums.length+1)/2;        for(int i=0;i<nums.length;i++){            sum-=nums[i];        }        return sum;    }}

解法二,位运算

public class Solution {    public int missingNumber(int[] nums) {        int sum=0;        for(int i=1;i<=nums.length;i++){            sum^=i;        }        for(int i=0;i<nums.length;i++){            sum^=nums[i];        }        return sum;    }}

解法三,位运算的更简洁写法

public class Solution {    public int missingNumber(int[] nums) {        int sum=0;        for(int i=1;i<=nums.length;i++){            sum^=i;            sum^=nums[i-1];        }        return sum;    }}
0 0
原创粉丝点击