268:丢失的数字

This commit is contained in:
huangge1199@hotmail.com 2021-07-18 13:57:24 +08:00
parent 5e99be931f
commit 118eef14fb
2 changed files with 130 additions and 0 deletions

View File

@ -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)
}

View File

@ -0,0 +1,51 @@
<p>给定一个包含 <code>[0, n]</code> 中 <code>n</code> 个数的数组 <code>nums</code> ,找出 <code>[0, n]</code> 这个范围内没有出现在数组中的那个数。</p>
<p> </p>
<p><strong>进阶:</strong></p>
<ul>
<li>你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?</li>
</ul>
<p> </p>
<p><strong>示例 1</strong></p>
<pre>
<strong>输入:</strong>nums = [3,0,1]
<strong>输出:</strong>2
<b>解释:</b>n = 3因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。</pre>
<p><strong>示例 2</strong></p>
<pre>
<strong>输入:</strong>nums = [0,1]
<strong>输出:</strong>2
<b>解释:</b>n = 2因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。</pre>
<p><strong>示例 3</strong></p>
<pre>
<strong>输入:</strong>nums = [9,6,4,2,3,5,7,0,1]
<strong>输出:</strong>8
<b>解释:</b>n = 9因为有 9 个数字,所以所有的数字都在范围 [0,9] 内。8 是丢失的数字,因为它没有出现在 nums 中。</pre>
<p><strong>示例 4</strong></p>
<pre>
<strong>输入:</strong>nums = [0]
<strong>输出:</strong>1
<b>解释:</b>n = 1因为有 1 个数字,所以所有的数字都在范围 [0,1] 内。1 是丢失的数字,因为它没有出现在 nums 中。</pre>
<p> </p>
<p><strong>提示:</strong></p>
<ul>
<li><code>n == nums.length</code></li>
<li><code>1 <= n <= 10<sup>4</sup></code></li>
<li><code>0 <= nums[i] <= n</code></li>
<li><code>nums</code> 中的所有数字都 <strong>独一无二</strong></li>
</ul>
<div><div>Related Topics</div><div><li>位运算</li><li>数组</li><li>哈希表</li><li>数学</li><li>排序</li></div></div>\n<div><li>👍 415</li><li>👎 0</li></div>