LeetCode P260 Single Number III
来源:互联网 发布:雷蛇鼠标驱动编程 编辑:程序博客网 时间:2024/04/29 14:26
Given an array of numbers
nums
, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.For example:
Given
nums = [1, 2, 1, 3, 2, 5]
, return[3, 5]
.Note:
- The order of the result is not important. So in the above example,
[5, 3]
is also correct.- Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity?
题目大意:给定一个整数数组,数组中除了两个数之外,其他数都是成对存在。请找出这两个数。
思路:该题思路类似SingNumber。假如要找的两个数为x、y,先将数组中所有数相互异或,得到的结果为result = x⊕y。result转换成二进制后一定存在值为1的位。找到result中任意一位值为1的位,然后按照这一位将数组中的数分为两个数组。一个数组是那一位是1的,另一个是那一位为0的。然后两个数组的数分别异或,最后的结果就是需要找的那两个数。
JavaCode:
public class Solution { public int[] singleNumber(int[] nums) { int result = 0; //将数组中的数逐个异或 for (int i = 0; i < nums.length; i++) {result ^= nums[i];} int bit = 1; //查找出结果中任意值为1的位 while (true) {if ((result & bit) > 0) {break;}else {bit <<= 1;}} int one = 0; int two = 0; //分成两组并各组逐一异或 for (int i = 0; i < nums.length; i++) {if ((nums[i] & bit) > 0) {one ^= nums[i];}else {two ^= nums[i];}} return new int[]{one,two}; }}
0 0
- LeetCode P260 Single Number III
- [LeetCode] Single Number III
- [leetcode] Single Number III
- [Leetcode]Single Number III
- [leetcode] Single Number III
- Leetcode: Single Number III
- LeetCode || Single Number III
- leetCode---Single Number III
- *LeetCode-Single Number III
- Single Number III -- leetcode
- Leetcode: Single Number III
- [LeetCode] Single Number III
- LeetCode--Single Number III
- leetcode-Single Number III
- LeetCode:Single Number III
- [LeetCode] Single Number III
- LeetCode -- Single Number III
- 【leetcode】Single Number III
- emment语法搜集
- JavaScript 计时
- sql加索引和删除索引,提高效率等
- 深入分析JavaWeb Item9 -- HttpServletRequset详解
- Maven实战读书笔记之二(安装与配置)
- LeetCode P260 Single Number III
- Web开发常用HTTP状态代码及意义
- Code Forces 593 B. Anton and Lines(水~)
- iOS---数组过滤
- LibGDX_2.3: 游戏的生命周期(ApplicationListener)
- JSP相关介绍
- Windows下git忽略某些文件
- LeetCode P136 Single Number及异或知识
- date之linux命令