Leetcode: 268.Missing Number 缺失数字
发布日期:2021-09-14 15:33:02 浏览次数:10 分类:技术文章

本文共 503 字,大约阅读时间需要 1 分钟。

给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。


输入:

[3,0,1]

输出:

2

输入:

[9,6,4,2,3,5,7,0,1]

输出:

8

说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?


方法一:公式法

将0~n的和与数组的n个数字的和相减,得到的值即为缺失的数字

public:    int missingNumber(vector
& nums) {
int sum=0; for(int num:nums) sum+=num; return (nums.size()+1)*nums.size()/2-sum; }

方法二:位运算

将0~n与数组的n个数字进行异或运算,得到的值即为缺失的数字

public:    int missingNumber(vector
& nums) {
int n=nums.size(),res=0; for(int i=0;i

转载地址:https://blog.csdn.net/weixin_42490152/article/details/100976490 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Leetcode:448. find-all-numbers-disappeared-in-an-array 找到所有数组中消失的数字
下一篇:Leetcode: 15. 3 Sum 三数之和

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月20日 14时38分27秒