原题链接:#136 Single Number
要求:
给定一个整型数组,其中除了一个元素之外,每个元素都出现两次。找出这个元素
注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间
难度:中等
分析:
题目限定了线性的时间复杂度,同时不使用额外的空间,即要求只遍历数组一遍得出结果。由于异或运算 n XOR n = 0, n XOR 0 = n,故将数组中的每个元素进行异或运算即可得到结果
解决方案:
Java - 245ms
public int singleNumber(int[] A) { if(A.length==0) { return 0; } int singleNum = A[0]; for(int i=1; i<A.length; i++) { singleNum = singleNum ^ A[i]; } return singleNum; }
Python - 93ms
def singleNumber(self, A): singleNum = A[0] for i in range(1,A.__len__()): singleNum = singleNum ^ A[i] return singleNum
相关推荐
面试题 02.06. 回文链表标签:栈、递归、链表、双指针难度:简单题目大意给定一个链表的头节点 head。然后再使用两个指针,一个指向数组开始位置,一个指向数
解题思路最大元素满足大于等于L 小于等于R的子数组个数 = 最大元素小于等于 R 的子数组个数 - 最大元素小于 L 的子数组个数。我们使用 count 记录
0410. 分割数组的最大值标签:二分查找、动态规划难度:困难题目大意给定一个非负整数数组 nums 和一个整数 m,将数组分成 m 个非空的连续子数组,要求使
旋转操作指的是:升序排列的数组 nums 在预先未知的第 k 个位置进行了右移操作,变成了 [nums[k]], nums[k+1], ... , nums[n
// 保证加入元素的唯一性// 第一个数组的当前值等于第二个数组的当前值,并且交集数组里面不存在,才加入,两个指针都移动= intersection[index
题目链接难度:简单 类型: 数组、二分法我们把符合下列属性的数组 A 称作山脉:给定一个确定为山脉的数组,返回任何满足 A[0] [1]
示例1输出:[0,2,1,-6,6,-7,9,1,2,0,1]解释:0 + 2 + 1 = -6 + 6 - 7 + 9 + 1 = 2 + 0 + 1示例2输
要求:对于 0 ≤ i ≤ n 的每一个 i,计算其二进制表示中 1 的个数,返回一个长度为 n + 1 的数组 ans 作为答案。解题思路可以根据整数的二进制
0169. 多数元素标签:数组、哈希表难度:简单题目大意给定一个数组,找到其中相同元素个数最多的元素。遍历一遍数组 nums,用哈希表统计每个元素 num 出现
0704. 二分查找标签:二分查找难度:简单题目大意给定一个升序的数组 nums,和一个目标值 target,返回 target 在数组中的位置,如果找不到,则
- 如果数组中所有元素都是 9,则创建一个新的数组,长度比原数组多一位,且第一位为 1。 **数据结构**: 数组 **时间复杂度**: O(n),其中 n 是数组的长度。只需遍历一次。 **空间复杂度**: O(n),在最坏情况下...
0485. 最大连续 1 的个数标签:数组难度:简单题目大意给定一个二进制数组,数组中只包含 0 和 1,计算其中最大连续 1 的个数。sum 用于存储当前连续
0259. 较小的三数之和标签:数组、双指针、二分查找、排序难度:中等题目大意给定一个长度为 n 的整数数组和一个目标值 target。这种思路使用了两重循环,
0946. 验证栈序列标签:栈、数组、模拟难度:中等题目大意给定两个整数序列 pushed 和 popped,每个序列中的值都不重复。要求:如果第一个序列为空栈
1202. 交换字符串中的元素标签:深度优先搜索、广度优先搜索、并查集、哈希表、字符串难度:中等题目大意给定一个字符串 s,再给定一个数组 pairs,其中 p
2. 位运算将出现三次的元素换成二进制形式放在一起,其二进制对应位置上,出现 1 的个数一定是 3 的倍数(包括 0)。此时,如果在放进来只出现一次的元素,则某
剑指 Offer 57. 和为s的两个数字标签:数组、双指针、二分查找难度:简单题目大意给定一个升序数组 nums,以及一个目标整数 target。要求:在数组
2011. 执行操作后的变量值标签:数组、字符串、模拟难度:简单题目大意存在一种支持 4 种操作和 1 个变量 X 的编程语言:++X 和 x++ 使得变量 X
2. 位运算将出现三次的元素换成二进制形式放在一起,其二进制对应位置上,出现 1 的个数一定是 3 的倍数(包括 0)。此时,如果在放进来只出现一次的元素,则某
剑指 Offer II 105. 岛屿的最大面积标签:深度优先搜索、广度优先搜索、并查集、数组、矩阵难度:中等题目大意给定一个只包含 0、1 元素的二维数组,1