博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
268. Missing Number -- 找出0-n中缺失的一个数
阅读量:5101 次
发布时间:2019-06-13

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

 

Given an array containing 
n
 distinct numbers taken from 
0, 1, 2, ..., n
, find the one that is missing from the array.

For example,

Given nums = [0, 1, 3] return 2.

Note:

Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?

(1)

class Solution {public:    int missingNumber(vector
& nums) { int n = nums.size(), ans = 0; for(int i = 0; i < n; i++) { ans ^= nums[i] ^ (i+1); } return ans; }};

异或0-n,异或nums。

异或0还等于原来的数。

(2)

class Solution {public:    int missingNumber(vector
& nums) { int n = nums.size(), sum = n*(n+1) / 2; for(int i = 0; i < n; i++) { sum -= nums[i]; } return sum; }};

求和相减。

转载于:https://www.cnblogs.com/argenbarbie/p/5983005.html

你可能感兴趣的文章
【博客美化小妙招】你希望有一个可爱的看板娘吗?
查看>>
BZOJ.2159.Crash的文明世界(斯特林数 树形DP)
查看>>
c# 设计模式
查看>>
Android Service被关闭后自动重启,解决被异常kill 服务
查看>>
计蒜客复赛 百度地图导航(最短路,好题,经典拆点)
查看>>
经典排序算法的总结及Python实现
查看>>
【pwnable.kr】fb
查看>>
转-求解最大连续子数组的算法
查看>>
算法为啥子那么难【转】
查看>>
对数器的使用
查看>>
OracleOraDb11g_home1TNSListener服务启动后停止,某些服务在未由其他服务或程序使用时将自己主动停止...
查看>>
Redis用户添加、分页、登录、注册、加关注案例
查看>>
练习2
查看>>
【ASP.NET】演绎GridView基本操作事件
查看>>
ubuntu无法解析主机错误与解决的方法
查看>>
尚学堂Java面试题整理
查看>>
08-【jsp重点】
查看>>
小记:xml画一个爱心。
查看>>
MySQL表的四种分区类型
查看>>
使用File类递归列出E盘下全部文件
查看>>