260.[LeetCode]Single Number III
来源:互联网 发布:淘宝茶叶排名 编辑:程序博客网 时间:2024/05/20 23:57
简直是药开动大脑,如果理解上一道类型题为什么要用异或,那么这一道题也是很好理解的
// 明确只有两个是唯一的,其他都是成对的// 返回的数组不要求顺序// 线性时间,常量空间public class Solution { public int[] singleNumber(int[] nums) { int[] str = new int[2]; int size = nums.length; int con = 0; for(int i=0;i<size;i++){ con ^= nums[i]; } //con是 两个不同的独数,做异或之后的数 int lastBit = (con & (con-1)) ^ (con); // 也可以是 lastBit = (con & (~(con-1))); int index1=0; int index2=0; for(int i=0;i<size;i++){ // 这里是全题的拍脑瓜时刻: // lastbit标识的两个独数的最后一位 不相同的 位置 // 全部的数可以分为,在lastBit处有1和在lastbit处没有1 // 只要将有1和没有1的分开做异或运算!相当于分成了两个简单的在找唯一一个不同数 int temp = lastBit & nums[i]; if(temp!=0){ index1 ^= nums[i]; } else { index2 ^= nums[i]; } } str[0] = nums[index1]; str[1] = nums[index2]; return str; }}
0 0
- [leetcode] 260.Single Number III
- Leetcode 260. Single Number III
- 260. Single Number III LeetCode
- [LeetCode]260. Single Number III
- LeetCode 260. Single Number III
- LeetCode 260. Single Number III
- LeetCode 260. Single Number III
- LeetCode *** 260. Single Number III
- leetcode-260. Single Number III
- 【leetcode】 260. Single Number III
- leetcode 260.Single Number III
- leetcode 260. Single Number III
- 【LeetCode】260. Single Number III
- Leetcode 260. Single Number III
- LeetCode - 260. Single Number III
- 【leetcode】260. Single Number III
- leetcode 260. Single Number III
- LeetCode 260. Single Number III
- JAVASE总结--折半查找
- JAVASE总结--Object
- 全栈开发--基础认识
- 安卓缓存之DiskLruCache及设计(异步+缓存)图片加载器DiskCacheImageLoader
- JAVASE总结--Proterties
- 260.[LeetCode]Single Number III
- JAVASE总结--内部类
- 对象转换成JSON
- python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix
- hdu 5795 最长公共子序列的应用-----公共子序列的个数
- swift流程控制
- JAVASE总结--线程
- Java main 函数中的 String[] args是什么?
- 51Nod-1191-消灭兔子