leetcode java 136. 只出现一次的数字
2019-06-19 09:19
281 查看
leetcode java 136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,1]
输出: 1
示例 2:
输入: [4,1,2,1,2]
输出: 4
解题思路:
这道题的关键是要求具有线性的时间复杂度,所以采用异或运算效率较高。
首先看下异或,异或简单的说就是相同为0相异为1。0^0=0,0^1=1,
1^0=1,1^1=0。得出个结论=>0^n=n。
具体思路:
拿数组的第一个数与每个做异或,重复的数异或结果肯定都是0,最后就剩下0异或那个只出现一次的数,根据上述结论异或结果就得那个数。
class Solution { public int singleNumber(int[] nums) { int result = nums[0]; for(int i = 1; i < nums.length; i++) { result = result ^ nums[i]; } return result; } }
相关文章推荐
- leetcode解题之136 #Single Number Java版(只出现一次的数字)
- Java&LeetCode 初入门——136. 只出现一次的数字
- 【LeetCode-面试算法经典-Java实现】【136-Single Number(只出现一次的数字)】
- 【LeetCode-面试算法经典-Java实现】【136-Single Number(仅仅出现一次的数字)】
- leetcode之136 只出现一次的数字
- 从零开始刷LeetCode:[136] 只出现一次的数字
- LeetCode 136 Single Number(仅仅出现一次的数字)
- LeetCode - 136. 只出现一次的数字
- LeetCode--4.只出现一次的数字--Java实现
- leetcode136. 只出现一次的数字
- leetcode - 136 - 只出现一次的数字
- leetcode 136. 只出现一次的数字
- leetcode-探索-初级-数组-只出现一次的数字-java
- LeetCode 136.只出现一次的数字(python)
- 136.[leetcode] C代码实现 数字只出现一次(Single Number)
- LeetCode 136 Single Number 出现一次的数字
- Leetcode136. 只出现一次的数字
- leetcode 136. 只出现一次的数字
- [leetcode] Python(3)--存在重复元素(217)、只出现一次的数字(136)
- leetcode136 只出现一次的数字