268. Missing Number
2016-06-28 11:39
316 查看
Given an array containing n distinct numbers taken from
For example,
Given nums =
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
题意:给出数组nums,nums的长度是n,里边放的是0-n之间的不同的值,找出丢失的值。
思路:把数组所有值加一块儿sum,用0-n的总和值减去sum就是缺失的值。
class Solution {
public:
int missingNumber(vector<int>& nums) {
const int size = nums.size();
int sum = 0;
for (int i = 0; i < nums.size(); i++){
sum += nums[i];
}
int expectSum = size*(size + 1) / 2;
return expectSum - sum;
}
};思路2:大神的思路是,假设0-5之间的缺失值是4,则0^1^2^3^4^5^0^1^2^3^4^5=4.利用了0^n=n, n^n=0的性质。
class Solution {
public:
int missingNumber(vector<int>& nums) {
int n = nums[0];
for (int i = 1; i < nums.size(); i++)
n ^= nums[i];
for (int i = 0; i <= nums.size(); i++)
n ^= i;
return n;
}
};
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?
题意:给出数组nums,nums的长度是n,里边放的是0-n之间的不同的值,找出丢失的值。
思路:把数组所有值加一块儿sum,用0-n的总和值减去sum就是缺失的值。
class Solution {
public:
int missingNumber(vector<int>& nums) {
const int size = nums.size();
int sum = 0;
for (int i = 0; i < nums.size(); i++){
sum += nums[i];
}
int expectSum = size*(size + 1) / 2;
return expectSum - sum;
}
};思路2:大神的思路是,假设0-5之间的缺失值是4,则0^1^2^3^4^5^0^1^2^3^4^5=4.利用了0^n=n, n^n=0的性质。
class Solution {
public:
int missingNumber(vector<int>& nums) {
int n = nums[0];
for (int i = 1; i < nums.size(); i++)
n ^= nums[i];
for (int i = 0; i <= nums.size(); i++)
n ^= i;
return n;
}
};
相关文章推荐
- Android Service使用速记
- 解决saiku读取配置文件乱码
- java.text.Format及相关类详解
- 两个数据库比较 对比视图存储过程及表结构差异
- Existing transaction found for transaction marked with propagation 'never'
- java中的类修饰符、成员变量修饰符、方法修饰符
- l来自wentao:项目加入缓存(redis),实时调试时用 -----可视化缓存,flushdb
- 未来演进的方向--基于Docker部署微服务
- Android总结篇系列:Android广播机制
- 关于 x-requested-with 请求头 区分ajax请求还是普通请求
- Android 微信支付步骤
- SD卡启动uboot分析和移植(s3cd 6410)
- 使用protoBuf
- 标量子查询
- Redis-3.2.1集群内网部署
- magento install
- 阿拉伯数字转换为汉字数字
- Spring Data JPA 快速入门
- Android App 免杀教程
- indenty 自定义认证 授权。