LeetCode 136 Single Number(数组中只出现一次的数字)
2016-02-18 15:24
549 查看
翻译
[code]给定一个整型数组,除了某个元素外其余元素均出现两次。找出这个只出现一次的元素。 备注: 你的算法应该是一个线性时间复杂度。你可以不用额外空间来实现它吗?
原文
[code]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)(*)代码
[code]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; } };
相关文章推荐
- Google推出iOS功能性UI测试框架EarlGrey
- 2016的开始
- 一个神奇的bug
- Erlang OTP gen_event
- 使用Python的urllib2模块处理url和图片的技巧两则
- SVN报错The working copy needs to be upgraded
- ios storyboard跳转前的验证
- Spring学习笔记(十二)----SimpleFormController(上)
- C#生成随机数的三种方法
- 移动H5页面技术总结
- 树莓派分辨率设置
- Ionic基础——表单输入ion-checkbox ion-radio ion-toggle ion-spinner
- FastCV主要接口分析之三
- tcp/ip协议
- 汉诺塔问题
- Linux下undefined reference to ‘pthread_create’问题解决
- [1032]:The 3n + 1 problem
- Professor Emeritus
- css3篇——box-sizing
- IE8兼容background-size