一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1: 示例 2: 限制: 2 <= nums <= 10000 思路: 1.先将数组中的全部数异或,最后得到的xor,就是num1和num2异或 ...
分类:
编程语言 时间:
2020-04-28 00:31:52
阅读次数:
52
1 public class test72 { 2 /** 3 * 找出只出现一次的数字 4 * 使用计数器 5 * 6 * @param args 7 */ 8 public static void main(String[] args) { 9 int arr1[] = {1, 1, 4, 3, ...
分类:
其他好文 时间:
2020-04-26 21:09:36
阅读次数:
63
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 思路 相同异或为0,相异异或为0,有两个出现一次,其他出现两次,想办法将这两个只出现一次的两个数分到不同的数组中。因为两个只出现1个,所以总体异或必不为0,从右往左,找第一个1的索引。根据这个索引 ...
分类:
其他好文 时间:
2020-04-25 16:58:44
阅读次数:
72
136. 只出现一次的数字 难度简单 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1 ...
分类:
其他好文 时间:
2020-04-24 21:37:48
阅读次数:
63
题意描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 解题思路 一、思路一 使用Set集合,遍历数组,当数字第一次出现时,加入Set,当数字第二次出现时,从Set中删除。最后Set中剩余的元素就是结果,赋值给num1、num2 二、思路二 利用异或运 ...
分类:
编程语言 时间:
2020-04-21 23:57:04
阅读次数:
106
题目描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1]输出: 1示例 2: 输入: [4,1,2,1,2]输出: 4 思想1: 异 ...
分类:
其他好文 时间:
2020-04-19 14:41:58
阅读次数:
57
对0和1的操作是计算机最底层的操作,所有的程序不管用什么语言写的,都要转化成机器能够读懂的语言也就是二进制进行基本的运算,而这些基本的运算就是我们今天要讲到的位运算。因为硬件的支持,计算机在进行二进制计算的时候要比普通的十进制计算快的多,把普通的运算用位运算的方法实现能够极大提高程序性能,是一个重要... ...
分类:
其他好文 时间:
2020-04-11 18:55:05
阅读次数:
76
听说位运算挺好玩的,那这节总结一下ACM中可能用到的位运算技巧。(可能更新) XOR运算极为重要!!(过[LC136](只出现一次的数字 - 力扣(LeetCode)):数组中每个数字都出现两次,只有一个出现一次,找到出现一次的数字) 1. 如果我们对 0 和二进制位做 XOR 运算,得到的仍然是这 ...
分类:
其他好文 时间:
2020-04-11 10:14:45
阅读次数:
66
// 面试题56(二):数组中唯一只出现一次的数字 // 题目:在一个数组中除了一个数字只出现一次之外,其他数字都出现了三次。请 // 找出那个吃出现一次的数字。 #include <cstdio> #include <exception> int FindNumberAppearingOnce(i ...
分类:
编程语言 时间:
2020-04-08 16:12:06
阅读次数:
58
// 面试题56(一):数组中只出现一次的两个数字 // 题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序 // 找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 #include <cstdio> unsigned int FindFirstBit ...
分类:
编程语言 时间:
2020-04-08 12:12:33
阅读次数:
78