网站建好后维护麻烦吗网站模板自助
2026/6/20 7:06:44 网站建设 项目流程
网站建好后维护麻烦吗,网站模板自助,专业做影楼招聘网站有哪些,网页设计与制作建立站点实践报告一、题目链接 268. 丢失的数字 - 力扣#xff08;LeetCode#xff09; 二、题目要求 给定一个包含 [0, n] 中 n 个数的数组 nums #xff0c;找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例 1#xff1a; 输入#xff1a;nums [3,0,1] 输出#xff1a;2 解释LeetCode二、题目要求给定一个包含[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中。三、解决1.解法一暴力解法数组是缺失[0n]中的一个数所以我们先将数组按顺序排好然后遍历一遍数组就能找到缺失的那个数字了时间复杂度不推荐。class Solution { public: int missingNumber(vectorint nums) { sort(nums.begin(),nums.end()); for(int i 0; i nums.size(); i) { if(nums[i] ! i) return i; } return nums.size(); } };2.解法二哈希表创建一个长度位n1的数组这个数组下标就是[0n]然后遍历原数组遍历到哪个数就在哈希表的对应下标的值加一然后再遍历哈希表哈希表中的值为0的下标就是丢失的数字。class Solution { public: int missingNumber(vectorint nums) { int n nums.size(); vectorint arr(n1,0); for(int i 0; i n; i) { arr[nums[i]]; } for(int i 0; i n1; i) { if(arr[i] 0) return i; } return n; } };3.解法三高斯求和先求出[0n]的和再求出该数组中所有数字的和。用总和减去数组中的和剩下的就是丢掉的数字。class Solution { public: int missingNumber(vectorint nums) { int numsSum 0; int Sum 0; for(int i 0; i nums.size()1; i) Sumi; for(auto e : nums) numsSume; return Sum-numsSum; } };4.解法四位运算由①a ^ 0 a②a ^ a 0③a ^ b ^ c a ^ (b ^ c)交换律可以得出解决方法创建一个[0n]的tmp数组先将原数组中的数字全部异或在一起然后再将tmp中的数字全部异或在一起然后让两次异或的结果相互异或最后就只剩下一个丢失的数字了。class Solution { public: int missingNumber(vectorint nums) { int tmp1 0; int tmp2 0; for(int i 0; inums.size()1; i) tmp1^i; for(auto e:nums) tmp2^e; return tmp1^tmp2; } };总结很简单的一道题但是解法很多可以帮助初学者入门这几种方法最好全部掌握。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询