singlenumber
来源:互联网 发布:就知武松打虎有多扯 编辑:程序博客网 时间:2024/05/16 05:09
ava基础知识:SingleNumber数组中找出只出现一次的数字
题目是这样说的:
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?
对复杂度的要求是线性的,O(n)就可以了
于是我一开始这样写也accept了就是利用一个hashmap,记录每个数字出现的个数。
public class Solution {
public int singleNumber(int[] A) {
Map map=new HashMap();
for(int i=0;i m:map.entrySet()){
if(m.getValue()==1){
return m.getKey();
}
}
return 0;
}
}
这个题的标准做法是利用异或运算的这两个法则:
1. a ^ b = b ^ a
2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;
举个例子:
1^2^3^4^4^3^2的结果是啥呢?
一眼大概开不出来
根据上面两个法则,改变一下顺序吧
改成2^2^3^3^4^4^1
现在,结果一目了然了吧~
显然是1呗。
有了上面的例子,这道题就简单多了
public class Solution {
public int singleNumber(int[] A) {
int result = A[0];
for(int i = 1; i < A.length; i++){
result = result ^ A[i];
}
return result;
}
}
完事了。
- SingleNumber
- SingleNumber
- SingleNumber
- singlenumber
- SingleNumber
- singleNumber
- singlenumber
- leetcode13.singleNumber
- LeetCode -- singleNumber
- LeetCode005:SingleNumber
- Leetcode-SingleNumber
- SingleNumberⅡ
- singleNumberⅢ
- 136SingleNumber
- LeetCode136. SingleNumber
- Leetcode习题: SingleNumber II
- Leetcode习题: SingleNumber II
- Leetcode: SingleNumber I
- java读写文件大全 .
- Android应用安全测试(Part1)
- Knockout应用开发指南 第三章:绑定语法(3)
- Android为多媒体文件生成缩略图
- redis数据类型
- singlenumber
- bootstrap网页框架使用例子
- Knockout应用开发指南 第四章:模板绑定
- Android如何安全退出整个引用
- List<T>进行多字段排序
- MFC异常处理机制,获取异常引起的错误
- Knockout应用开发指南 第五章:创建自定义绑定
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
- 安卓应用程序插件化开发框架 -AAP Framework【开源项目】