Single Number
来源:互联网 发布:成都mac专柜价格多少 编辑:程序博客网 时间:2024/05/17 04:38
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?
public class Solution { public int singleNumber(int[] A) { //a^b^c = a ^ ( b ^ c ); //0 ^ a = a //a ^ a = 0 //a ^ a ^ b ^ b ... ^ e ^... = e int c = A[0]; for(int i = 1 ;i < A.length; i ++){ c = c ^ A[i]; } return c; }}
Runtime: 384 ms
解法太巧妙了,服了。。。。
这道题如果没有限制条件的话,还是很简单的,最简单的用HashMap记录每一个元素出现的次数;或者用O(nlogn)的时间排序,找到A[A.length/2];
主要问题在于怎么在O(n)的时间内找到,自己的想法一直是在想怎么缩短排序的时间。
记得有一个交换两个数据的问题。
a 和b 交换,不能使用额外的空间
a ^= b;
b ^= a;
a ^= b;
0 0
- Single Number
- single number
- Single Number
- Single Number
- Single Number
- Single Number
- Single Number
- Single Number
- Single Number
- Single Number
- Single Number
- Single Number
- Single Number
- Single Number
- single number
- Single Number
- Single Number
- Single Number
- Java内存管理:深入Java内存区域
- 对如何估算时间的一点想法
- memmove函数
- python 的 matplotlib画图 画曲线图
- 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取"产品付费数量等于0的问题"】
- Single Number
- Java 创建线程的两种方法
- json.parse() and json.stringify()
- hdu5156 LCA
- [cocos2d-js]cc.RenderTexture几种用法(数字图片、刮刮乐效果)
- HDOJ 最小公倍数(欧几里得算法求最大公约数)
- 实用Xcode改名
- makefile自动生成依赖
- 编辑器与编译器详解