[LeetCode] Missing Number
来源:互联网 发布:计算机程序员考试报名 编辑:程序博客网 时间:2024/06/18 14:56
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:0-n求和,再减去数组元素的总和,即为缺失元素。
思路2:亦或操作。两个相同的数亦或结果为0,一个不为0的数与0亦或,其值为本身。
实现代码
C++代码1:
// Runtime: 36 ms// 代码已AC,但求和有溢出风险。class Solution {public: int missingNumber(vector<int>& nums) { int len = nums.size(); int sum = 0; for_each(nums.begin(), nums.end(), [&sum](int n){ sum += n; }); int total = (len + 1) / 2.0 * (0 + len); return total - sum; }};
C++代码2:
// Runtime: 36 msclass Solution {public: int missingNumber(vector<int>& nums) { int miss = nums[0] ^ 0; for (int i = 1; i < nums.size(); i++) { miss ^= nums[i]; miss ^= i; } return miss ^= nums.size(); }};
Java代码1:
// Runtime: 1 mspublic class Solution { public int missingNumber(int[] nums) { int sum = (int)((nums.length + 1) / 2.0 * nums.length); for (int n : nums) { sum -= n; } return sum; }}
Java代码2:
// Runtime: 1 mspublic class Solution { public int missingNumber(int[] nums) { int miss = nums[0] ^ 0; for (int i = 1; i < nums.length; i++) { miss ^= nums[i]; miss ^= i; } return miss ^= nums.length; }}
0 0
- 【LeetCode】268 Missing Number
- [leetcode] 268.Missing Number
- [leetcode][math] Missing Number
- [LeetCode] Missing Number
- Leetcode -- Missing Number
- 【leetCode】Missing Number
- [Leetcode]Missing Number
- leetcode Missing Number
- 【leetcode】268. Missing Number
- [leetcode] Missing Number
- LeetCode(268)Missing Number
- Leetcode: Missing Number
- LeetCode之Missing Number
- LeetCode Missing Number
- [leetcode 268]Missing Number
- leetcode--Missing Number
- leetCode #286 Missing Number
- Leetcode 286 : Missing Number
- HDU 2005
- S2SH+ajax+json-------ajax提交form表达,上传图片
- android studio最简单的更新方式(像普通软件一样直接在线升级,谁说as不能在线升级的???)
- 获取手机UUID
- 视频教程vs文档教程
- [LeetCode] Missing Number
- 静态内存、动态内存以及堆栈(C++)
- ios9 XIB加载缓慢
- 关于java集合框架collection概述
- 打电话主要代码
- 基于 CoreText 的排版引擎:基础
- 简单的递归应用
- opecv cartoon(外星人模式)
- linux / unix 网络性能测试工具iperf详细使用图文教程