Leetcode 137.只出现一次的数字II
2024-09-29 17:39:36
只出现一次的数字II
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,3,2]
输出: 3
示例 2:
输入: [0,1,0,1,0,1,99]
输出: 99
将int数分为32位,那么按该题的要求,这32位的每一位,所出现过的数目必定是3N或3N+1,3N+1的位级必然是那唯一的一个元素贡献的。对int数res的每个位进行数组位与遍历,出现3N+1的即保留下来,最终刷完32位之后,可得结果。
class Solution{
public:
int singleNumber(vector<int>& nums){
int length = nums.size();
int result = 0;
for (int i = 0; i<32; i++){
int count = 0;
int mask = 1 << i;
for (int j = 0; j<length; j++){
if (nums[j] & mask)
count++;
}
if (count % 3)
result |= mask;
}
return result;
}
};
最新文章
- TortoiseGIT创建及合并分支
- [转载]我的Java后端书架 (2016年暖冬4.0版)
- 今天遇到了批量删除 redis 某个前缀的所有 key,发现只能是这么解决。
- boost库学习之开篇
- php中的 == 和 ===
- CentOS下添加新硬盘
- ylbtech-Unitity-cs:传递的字符串中数字字符的数目
- Dapper ORM 用法
- 【zendstudio】如何利用zendstudio新建 或导入php项目
- sqort函数用法总结
- LaTeX新人教程,30分钟从全然陌生到基本入门
- (转载)#include机制,#ifndef...#define...#endif防止重复引用,声明,定义等概念
- semver(Semantic Versioning)
- [LeetCode] Redundant Connection II 冗余的连接之二
- 斐波那契数列(C#)
- oracle建表 和 设置主键自增
- 前后端分离djangorestframework——权限组件
- ubuntu 14.04 安装 eclipse
- Git:本地建服务器及入门使用方法
- 从零开始写一个发送h264的rtsp服务器(上)