[leetcode]2018.3.22 只出现一次的数字
2018-03-22 15:57
253 查看
只出现一次的数字
给定一个整数数组,除了某个元素外其余元素均出现两次。请找出这个只出现一次的元素。 备注:你的算法应该是一个线性时间复杂度。 你可以不用额外空间来实现它吗?
---------------------------------------------------------------------------
思路:
1.直接解法 先进行排序,然后使用双指针遍历。时间复杂度不符合。
---------------------------------------------------------------------------
2.使用异或操作。
这个程序用了个小技巧:一个整数和它本身异或之后得到值是0,0与其他整数异或得到的是这个整数本身。int singleNumber(int* nums, int numsSize) {
int ret=0;
int i;
if(numsSize<1)
{
return 0;
}
for(i=0;i<numsSize;i++)
{
ret ^= nums[i];
}
return ret;
}
给定一个整数数组,除了某个元素外其余元素均出现两次。请找出这个只出现一次的元素。 备注:你的算法应该是一个线性时间复杂度。 你可以不用额外空间来实现它吗?
---------------------------------------------------------------------------
思路:
1.直接解法 先进行排序,然后使用双指针遍历。时间复杂度不符合。
---------------------------------------------------------------------------
2.使用异或操作。
这个程序用了个小技巧:一个整数和它本身异或之后得到值是0,0与其他整数异或得到的是这个整数本身。int singleNumber(int* nums, int numsSize) {
int ret=0;
int i;
if(numsSize<1)
{
return 0;
}
for(i=0;i<numsSize;i++)
{
ret ^= nums[i];
}
return ret;
}
相关文章推荐
- leetcode_137. Single Number II 只出现一次的数字 II 偏离了题目考点,主要是为了写下java
- LeetCode 137 Single Number II(只出现一次的数字 II)(*)
- LeetCode 136 Single Number(仅仅出现一次的数字)
- leetcode解题之136 #Single Number Java版(只出现一次的数字)
- LeetCode 136 Single Number(数组中只出现一次的数字)
- 【LeetCode】- Single Number(从数组中找出只出现一次的数字)
- LeetCode - 136. 只出现一次的数字
- LeetCode 136 Single Number 出现一次的数字
- Leetcode 只出现一次的数字
- 寻找只出现一次的数字(LeetCode: Single Number II)
- LeetCode:只出现一次的数字
- 【LeetCode-面试算法经典-Java实现】【136-Single Number(只出现一次的数字)】
- 【LeetCode-面试算法经典-Java实现】【136-Single Number(仅仅出现一次的数字)】
- LeetCode 137 Single Number II(仅仅出现一次的数字 II)(*)
- Leetcode 136 Single Number 仅出现一次的数字
- Leetcode 137 Single Number II 仅出现一次的数字
- Leetcode 260 Single Number III 仅出现一次的数字
- LeetCode刷题之一:寻找只出现一次的数字
- LeetCode 260 Single Number III(数组中只出现一次的数字3)