LeetCode 137 Single Number II(只出现一次的数字 II)(*)
2016-02-18 19:21
525 查看
翻译
[code]给定一个整型数组,除了某个元素外其余的均出现了三次。找出这个元素。 备注: 你的算法应该是线性时间复杂度。你可以不用额外的空间来实现它吗?
原文
[code]Given an array of integers, every element appears three times except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
分析
这道题我并没有按照题目线性时间和不使用额外存储的要求来完成,确实很难的一道题……我也就这水平了,下面的解决方案没有使用额外存储时间不过时间已经超了。
[code]class Solution { public: int singleNumber(vector<int>& nums) { sort(nums.begin(), nums.end()); for (int i = 1; i < nums.size() - 1; ++i) { if ((nums[i] != nums[i - 1]) && (nums[i] != nums[i + 1])) return nums[i]; } if (nums[0] != nums[1]) return nums[0]; else if (nums[nums.size() - 1] != nums[nums.size() - 2]) return nums[nums.size() - 1]; } };
与之相关的还有两道题,大家可以看看:
LeetCode 136 Single Number(只出现一次的数字)
LeetCode 260 Single Number III(只出现一次的数字 III)(*)
相关文章推荐
- 顺序表
- MySQL数据库limit分页、排序-SQL语句示例
- code vs [网络流24题] 最长递增子序列问题
- 深入理解计算机系统-之-数值存储(二)--C程序打印变量的每一字节或者位
- linux创建账户并自动生成主目录和主目录下的文件
- ACM数论之旅5---数论四大定理(你怕不怕(☆゚∀゚)老实告诉我)
- 利用 Gitbook 生成文档中心站点
- iOS Dev (67) 单例的实现
- ACM数论之旅4---扩展欧几里德算法(欧几里德(・∀・)?是谁?)
- mysql之运算符
- ACM数论之旅3---最大公约数gcd和最小公倍数lcm(苦海无边,回头是岸( ̄∀ ̄))
- 网页特殊符号HTML代码大全
- 【BZOJ 2321】 [BeiJing2011集训]星器
- leetcode21 合并两个排好序的单链表
- Openstack基本命令
- C++中函数strcpy和strcpy_s(VS pro 2015)
- Doxygen
- 关于添加类目
- Android AudioTrack分析
- Ubuntu启动项