面试题 17.04. 消失的数字

题目来源

https://leetcode-cn.com/problems/missing-number-lcci/

题目描述

面试题 17.04. 消失的数字_第1张图片

题目解析

数学

public class Solution {
      /*
       不缺元素时总和就是所有元素下标之和再加上数组长度,实际总和直接加起来
        */
      public static  int missingNumber(int[] nums) {
          if (nums == null || nums.length == 0){
              return -1;
          }

         int sum = nums.length;
         int sum1 = 0;

         for (int i = 0; i < nums.length; i++){
             sum += i;
             sum1 += nums[i];
         }

         return sum - sum1;
      }

    public static void main(String[] args) {
       System.out.println(missingNumber(new int[]{9,6,4,2,3,5,7,0,1}));
    }
}

在这里插入图片描述

位运算

class Solution {
    public int missingNumber(int[] nums) {
        if (nums == null || nums.length == 0){
            return -1;
        }

        int ans = nums.length;
        for (int i = 0; i < nums.length; i++){
            ans = (ans ^ nums[i] ^ i);
        }

        return ans;
    }
}

在这里插入图片描述

你可能感兴趣的:(算法与数据结构)