[2016/11/14]naive问题中异或的巧妙用法
来源:互联网 发布:充值系统java 源码 编辑:程序博客网 时间:2024/06/11 05:11
一道简单题,大意是给你一个数组,除了一个数只出现一次,其他全部的数字都出现了两次。求那个数。
正常人的思路都是先sort一遍,再写个step为2的for循环找。这样做时间复杂度nlogn+n,空间复杂度1。
但是!!!下面这个做法用了相同的空间复杂度,时间复杂度仅为n。
巧妙利用了按位异或的性质:一样为0,不一样为1。最后异或之后只剩下不同的数啦!
粘了代码如下:
int singleNumber(int* nums, int numsSize) { int x = 0; int i = 0; for (i = 0; i<numsSize;i++){ x=x^nums[i]; } return x;}
0 0
- [2016/11/14]naive问题中异或的巧妙用法
- 用异或巧妙的解决对比问题
- 异或的巧妙应用
- C中Union的巧妙用法
- JQuery中$()函数的巧妙用法
- 异或运算符的巧妙应用
- 标签的巧妙用法
- system 的巧妙用法
- DISTINCT的巧妙用法
- 落单的数算法(巧妙的异或运算)
- C 中 & | ~ ^ 与 或 反 异或 的用法
- 百度面试题之找出数组中之出现一次的两个数(异或的巧妙应用)
- Try / Catch的巧妙用法
- dual的一些巧妙用法
- Android BigDecime的巧妙用法
- Raphael.animation()的巧妙用法
- 悬而未决:如何巧妙解决ERP中BOM的交叉问题
- 异或的用法
- 【深入Java虚拟机】之七:Javac编译与JIT编译
- 第四节 Shell文件权限和脚本执行
- python 统计指定文件夹下的某类文本文件行数
- redis shell启动脚本
- android调用系统相机并剪切照片(个人学习)
- [2016/11/14]naive问题中异或的巧妙用法
- MyBatis的传入参数parameterType类型
- USB设备请求命令
- 第五节 变量类型和使用
- linux:nohup 不生成 nohup.out的方法
- 关于在IOS10 系统上运行App 遇到的问题
- 周计划安排-凡事预立,不预则废
- 2016中国软件大会(CSC 2016)即将在北京召开
- 第六节 Shell输入、输出功能和字符设置