Leetcode:136.Single Number 找到数组里面的非重复数字,其他数字也最多重复两次
2017-11-01 11:15
267 查看
题目:Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
中文描述:给定整数数组,除了一个元素之外,每个元素都会出现两次。找到那个单一的。
注意:
您的算法应具有线性运行时复杂度。你可以实现它而不使用额外的内存吗?
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
中文描述:给定整数数组,除了一个元素之外,每个元素都会出现两次。找到那个单一的。
注意:
您的算法应具有线性运行时复杂度。你可以实现它而不使用额外的内存吗?
/** * 题目的前提:算法应具有线性运行时复杂度。实现它而不使用额外的内存 * 我拿着这个题我就想着如何排序 如何遍历找到不同的元素 * 但是最后我发现这样做的时间复杂度都肯定大于n * 看了别人的思路:发现XOR运算可以解决这个问题 * 两个相同的元素XOR之后为0 * 0 XOR Num = Num * 所以答案也就出来了 * @param nums * @return */ public int singleNumber(int[] nums) { int rev = 0; for (int i = 0; i < nums.length; i++) { rev ^= nums[i]; } return rev; }
相关文章推荐
- 阿里2015笔试附加题-一个数组中存在一组数字,其中有一个数字重复3遍,其他2遍,在O(1)空间找到那个重复3次的数
- 软件开发者面试百问-----有一个数组,里面是从1到1,000,000的整数,其中有一个数字出现了两次,你怎么找出那个重复的数字?
- LeetCode 136 Single Number(数组中只出现一次的数字)
- 计数排序——有一个数组,里面是从1到1,000,000的整数,其中有一个数字出现了两次,你怎么找出那个重复的数字?
- 一个整数数组里面,除了两个数之外,其他的数字都出现了两次,写一个程序找出这两个数
- 如何找到一个数组里面重复次数最多的数
- leetcode_26. Remove Duplicates from Sorted Array 在排好序的数组中删除重复的数字,不允许分配其他空间
- 一个整数数组里面,除了两个数之外,其他的数字都出现了两次,写一个程序找出这两个数
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次
- 【LeetCode-面试算法经典-Java实现】【136-Single Number(只出现一次的数字)】
- 去掉有序数组中重复数字 原地 leetcode java (最简单的方法)
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次
- 【C语言】一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字!
- 【LeetCode-面试算法经典-Java实现】【136-Single Number(仅仅出现一次的数字)】
- Leetcode刷题记——136. Single Number(单独的数字)
- LeetCode 26 Remove Duplicates from Sorted Array (移除有序数组中重复数字)
- 列出一个数组里面的重复数字
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
- 一个整型数组里除了一个或者两个或者三个数字之外,其他的数字都出现了两次。
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。