Missing Number

此题也是一个比较特殊的思维来解题,因为数组里面没有重复数而且在0 - n 里面,所以我们把1 - n里面的数全部加起来再减去当前数组的和其实就是正确答案了,如果两数相等,则缺的就是0了,下面是这种思路的代码

class Solution(object):
    def missingNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        n = len(nums)
        return n * (n + 1) / 2 - sum(nums)

另外还有XOR和二分法的方法

比特位操作的XOR方法代码如下,没有很理解还

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

results matching ""

    No results matching ""