zoukankan      html  css  js  c++  java
  • [leetcode] Missing Number

    题目:

    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.
    
    Note:
    Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?

    分析:

    方法一:根据元素的顺序,进行异或^操作:

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

    方法二:利用数学求和,用期望值减去实际值即可:

        public int missingNumber(int[] nums) {
            int sum = 0;
            for(int i : nums) {
                sum += i;
            }
            int n = nums.length;
            int tmp = (n+1)*n/2;
            return tmp-sum;
        }
  • 相关阅读:
    十二周作业
    十一周作业
    第十周作业
    第九周作业
    第八周作业
    第七周作业
    2019年第六周作业
    第五周作业总结
    介绍自己
    第一学期总结
  • 原文地址:https://www.cnblogs.com/lasclocker/p/4986726.html
Copyright © 2011-2022 走看看