From 118eef14fb0f68328ad0decd261256430df88ccf Mon Sep 17 00:00:00 2001 From: "huangge1199@hotmail.com" Date: Sun, 18 Jul 2021 13:57:24 +0800 Subject: [PATCH] =?UTF-8?q?268:=E4=B8=A2=E5=A4=B1=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leetcode/editor/cn/MissingNumber.java | 79 +++++++++++++++++++ .../java/leetcode/editor/cn/MissingNumber.md | 51 ++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 src/main/java/leetcode/editor/cn/MissingNumber.java create mode 100644 src/main/java/leetcode/editor/cn/MissingNumber.md diff --git a/src/main/java/leetcode/editor/cn/MissingNumber.java b/src/main/java/leetcode/editor/cn/MissingNumber.java new file mode 100644 index 0000000..a969484 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/MissingNumber.java @@ -0,0 +1,79 @@ +//给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 +// +// +// +// 进阶: +// +// +// 你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题? +// +// +// +// +// 示例 1: +// +// +//输入:nums = [3,0,1] +//输出:2 +//解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。 +// +// 示例 2: +// +// +//输入:nums = [0,1] +//输出:2 +//解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。 +// +// 示例 3: +// +// +//输入:nums = [9,6,4,2,3,5,7,0,1] +//输出:8 +//解释:n = 9,因为有 9 个数字,所以所有的数字都在范围 [0,9] 内。8 是丢失的数字,因为它没有出现在 nums 中。 +// +// 示例 4: +// +// +//输入:nums = [0] +//输出:1 +//解释:n = 1,因为有 1 个数字,所以所有的数字都在范围 [0,1] 内。1 是丢失的数字,因为它没有出现在 nums 中。 +// +// +// +// 提示: +// +// +// n == nums.length +// 1 <= n <= 104 +// 0 <= nums[i] <= n +// nums 中的所有数字都 独一无二 +// +// Related Topics 位运算 数组 哈希表 数学 排序 +// 👍 415 👎 0 + +package leetcode.editor.cn; + +//268:丢失的数字 +class MissingNumber { + public static void main(String[] args) { + //测试代码 + Solution solution = new MissingNumber().new Solution(); + } + + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) + class Solution { + public int missingNumber(int[] nums) { + int xor = 0; + for (int i = 0; i <= nums.length; i++) { + xor^=i; + } + for (int num : nums) { + xor^=num; + } + return xor; + } + } +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/MissingNumber.md b/src/main/java/leetcode/editor/cn/MissingNumber.md new file mode 100644 index 0000000..0366e57 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/MissingNumber.md @@ -0,0 +1,51 @@ +

给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。

+ +

 

+ +

进阶:

+ + + +

 

+ +

示例 1:

+ +
+输入:nums = [3,0,1]
+输出:2
+解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。
+ +

示例 2:

+ +
+输入:nums = [0,1]
+输出:2
+解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。
+ +

示例 3:

+ +
+输入:nums = [9,6,4,2,3,5,7,0,1]
+输出:8
+解释:n = 9,因为有 9 个数字,所以所有的数字都在范围 [0,9] 内。8 是丢失的数字,因为它没有出现在 nums 中。
+ +

示例 4:

+ +
+输入:nums = [0]
+输出:1
+解释:n = 1,因为有 1 个数字,所以所有的数字都在范围 [0,1] 内。1 是丢失的数字,因为它没有出现在 nums 中。
+ +

 

+ +

提示:

+ + +
Related Topics
  • 位运算
  • 数组
  • 哈希表
  • 数学
  • 排序
  • \n
  • 👍 415
  • 👎 0
  • \ No newline at end of file