1. 只出现一次的数字(136)

异或的性质总结:
相异为1,相同为0;
a ^ a = 0;
0 ^ a = a;
如果 a ^ b = c 成立,那么a ^ c = b 与 b ^ c = a 均成立。

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

输入: [2,2,1]

输出: 1

class Solution {
public int singleNumber(int[] nums) {
int res=0;
for(int num : nums){
res=res ^ num;
}
return res;
}
}

2. 只出现一次的数字(136)

class Solution {
public int singleNumber(int[] nums) {
int ans = 0;
for (int i = 0; i < 32; i++) { // 确定每一位
int sum = 0;
for (int num : nums) {
sum += (num >> i) & 1; // 统计当前位置有多少个元素
}
ans += (sum % 3) << i; // 还原到第i位
}
return ans;
}
}

3. 只出现一次的数字(260)

给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。

示例 :

输入: [1,2,1,3,2,5]

输出: [3,5]

class Solution {
public int[] singleNumber(int[] nums) {
HashMap<Integer,Integer> map=new HashMap<>();
for(int i:nums){
map.put(i,map.getOrDefault(i,0)+1);
}
int count=0;
int [] res=new int[2];
for(int i:map.keySet()){
if(map.get(i)==1){
res[count++]=i;
}
}
return res; }
}

最新文章

  1. 设置surfaceView的背景为透明
  2. IP地址、子网掩码、网络号、主机号、网络地址、主机地址
  3. HTML5自学笔记[ 9 ]HTML5实现元素的拖放
  4. submit和button的区别
  5. JDBC连接池以及动态SQL处理
  6. ZOJ1372 POJ 1287 Networking 网络设计 Kruskal算法
  7. 文档数据库RavenDB-介绍与初体验
  8. HTML通过事件传递参数到js 二 event
  9. 关于js的一些基本知识(类,闭包,变量)
  10. IOS开发中数据持久化的几种方法--NSUserDefaults
  11. yii2-验证规则,rules,判断条件
  12. 14-TypeScript简单工厂模式
  13. 201671010147 2017年8月27号 初学java的感想
  14. remote: Incorrect username or password ( access token )
  15. jsp引入本地图片
  16. rabbitmq更换数据文件和日志文件的存放位置
  17. iOS实现pdf文件预览,上下翻页、缩放,读取pdf目录
  18. JVM-即时编译JIT
  19. PTA之多项式求值
  20. 微信小程序 循环列表添加点击事件和样式

热门文章

  1. css--实现一个文字少时居中,文字换行时居左的样式
  2. vue 使用 lang=&quot;scss&quot; 报错
  3. Webstorm 快速补全
  4. HashSet 和 HashMap 的比较
  5. wdlinux一键安装包
  6. 当鼠标移入div上时,div的背景色在4s之内渐变为灰色,同时在5s之内顺时针旋转45度,且尺寸缩小一半;当鼠标移走时,再渐变恢复初始样式
  7. MyBatis使用Zookeeper保存数据库的配置,可动态刷新
  8. 为什么crictl和ctr的输出有时不一样
  9. CMMI相关图书
  10. MaterialDesign Or ComboBox 联动查询