LeetCode 136 Single Number(仅仅出现一次的数字)
2017-06-16 17:12
351 查看
翻译
给定一个整型数组,除了某个元素外其余元素均出现两次。找出这个仅仅出现一次的元素。
备注: 你的算法应该是一个线性时间复杂度。
你能够不用额外空间来实现它吗?
原文
Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
分析
请參照上一题:LeetCode 260 Single Number III(仅仅出现一次的数字3)(*)另一道与之相应的题:LeetCode 137 Single Number II(仅仅出现一次的数字 II)(*)
代码
class Solution { public: unsigned int FindFirstBigIs1(int num) { int indexBit = 0; while (((num & 1) == 0) && (indexBit < 8 * sizeof(int))) { num = num >> 1; ++indexBit; } return indexBit; } int singleNumber(vector<int>& nums) { if (nums.size() <= 0) return NULL; int resultExclusiveOR = 0; for (int i = 0; i < nums.size(); ++i) resultExclusiveOR ^= nums[i]; unsigned int indexOf1 = FindFirstBigIs1(resultExclusiveOR); int singleNum = 0; for (int j = 0; j < nums.size(); ++j) { singleNum ^= nums[j]; } return singleNum; } };
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【136-Single Number(仅仅出现一次的数字)】
- Leetcode 136 Single Number 仅出现一次的数字
- LeetCode 136 Single Number 出现一次的数字
- 【LeetCode-面试算法经典-Java实现】【136-Single Number(只出现一次的数字)】
- LeetCode 136 Single Number(数组中只出现一次的数字)
- LeetCode - 136. 只出现一次的数字
- leetcode解题之136 #Single Number Java版(只出现一次的数字)
- LeetCode 137 Single Number II(仅仅出现一次的数字 II)(*)
- [LeetCode136]Single Number寻找一个数组里只出现一次的数
- 【LeetCode】- Single Number(从数组中找出只出现一次的数字)
- 【leetcode】数组中找出只出现一次的数字(Single Number)
- Single Number --- 找出数组中出现一次的数字
- 第六十一题(找出数组中两个仅仅出现一次的数字)
- 【剑指offer】数组中仅仅出现一次的数字(1)
- LeetCode刷题之一:寻找只出现一次的数字
- 【剑指offer】数组中仅仅出现一次的数字(1)
- Leetcode刷题记——136. Single Number(单独的数字)
- 136 Single Number 找到只出现一次的数
- Leetcode 137 Single Number II 仅出现一次的数字