给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。 示例 1: 输入: [3,0,1]输出: 2示例 2: 输入: [9,6,4,2,3,5,7,0,1]输出: 8
思路1: 0~n个数的总和 - 数组中所有数的和 = 缺失的数思路2: 异或
1 class Solution268 { 2 public int missingNumber(int[] nums) { 3 int n = nums.length + 1; 4 long sum = n * (n - 1) / 2; 5 long tempSum = 0; 6 for (int i = 0; i < nums.length; i++) { 7 tempSum += nums[i]; 8 } 9 return (int) (sum - tempSum); 10 } 11 12 public int missingNumber2(int[] nums) { 13 int temp = nums.length; 14 for (int i = 0; i < nums.length; i++) { 15 temp = temp ^ nums[i] ^ i; 16 } 17 return temp; 18 } 19 }
原文地址:https://www.cnblogs.com/rainbow-/p/10441161.html
时间: 2024-10-03 15:47:59