[LeetCode OJ] Single Number之一 ——Given an array of integers, every element appears twice except for one. Find that single one.
2024-10-17 14:04:46
class Solution {
public:
int singleNumber(int A[], int n) {
int i,j;
for(i=; i<n; i++)
{
for(j=i+; j<n; j++)
{
if(A[j]==A[i])
{
int temp = A[i+];
A[i+] = A[j];
A[j] = temp;
i++;
break;
}
}
if(j==n)
return A[i];
}
}
};
上面的是传统方法,时间复杂度是O(n2),空间复杂度是O(1)。
class Solution {
public:
int singleNumber(int A[], int n) {
int result=;
for(int i=; i<n; i++)
result = result ^ A[i];
return result;
}
};
用位异或运算实现,时间复杂度和空间复杂度均为O(1).
运用了异或运算具有交换律和结合律的性质。
交换律: a^b = b^a
结合律: (a^b)^c = a^(b^c)
另外,a^a=0。
最新文章
- 移动Web触摸与运动解决方案AlloyTouch开源啦
- jquery获取url参数及url加参数的方法
- 从Trie谈到AC自动机
- Android ListView 自定义 Adapter
- Map的基本用法(Java)
- Requests库的几种请求 - 通过API操作Github
- putty 实现不用输入用户名密码直接登陆
- gentoo下grub文件编辑
- iOS面试题16719-b
- hdu 1548 A strange lift (bfs)
- hdu 4496 D-City(并查集)
- DOS 根据用户输入执行指令判断IF
- 模仿jquery的一些实现
- Tomcat常用的过滤器
- 在windows+eclipse+git遇到的未修改文件被标记为已修改的问题
- Linux挂载NAS 网络附属存储
- .NET Core、Xamarin、.NET Standard和.NET Framework四者之间的区别
- 蓝牙扫描工具btscanner修复暴力扫描模式
- Java如何计数替换字符串中第一次出现的子字符串?
- MySQL主从同步技术
热门文章
- js eval()函数 接收一个字符串,做为js代码来执行。 如: s=&#39;var d=";kaka";&#39;; 或者s=‘function (code){return code }’;
- POJ3126 Prime Path(BFS)
- -_-#【Better JS Code】严格模式
- Binary Tree Inorder Traversal ——LeetCode
- FZU 2113 Jason的特殊爱好
- 跳跃表Skip List【附java实现】
- Girls&#39; research - HDU 3294 (Manacher处理回文串)
- 表格布局TableLayout
- [Angular 2] Create a simple search Pipe
- Lucene中string docvalues使用utf-16的优化