码迷,mamicode.com
首页 > 编程语言 > 详细

Leetcode: SingleNumber I & II & III 136/137/260

时间:2019-04-19 01:17:08      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:输出   enum   leetcode   应该   click   题意   target   空间复杂度   number   

SingleNumber I:

题目链接:https://leetcode-cn.com/problems/single-number/

题意:

  给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

  说明:

  你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

  示例 1:

  输入: [2,2,1]
  输出: 1

  示例 2:

  输入: [4,1,2,1,2]
  输出: 4

分析:

  利用异或(xor)运算,两个相同的数异或为0

代码如下:

技术图片
 1 class Solution {
 2 public:
 3     int singleNumber(int A[], int n) {
 4         int ans = 0;
 5         for(int i = 0; i < n; ++i) {
 6             ans ^= A[i];
 7         }
 8         return ans;
 9     }
10 };
View Code

 

SingleNumber II:

题目链接:https://leetcode-cn.com/problems/single-number-ii/

题意:

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

  输入: [2,2,3,2]
  输出: 3

示例 2:

  输入: [0,1,0,1,0,1,99]
  输出: 99

分析:

TODO

代码如下:

TODO

SingleNumber III:

题目链接:https://leetcode-cn.com/problems/single-number-iii/

题意:

给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。

示例 :

输入: [1,2,1,3,2,5]
输出: [3,5]

注意:

    1. 结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。
    2. 你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?

分析:

TODO

代码如下:

TODO

Leetcode: SingleNumber I & II & III 136/137/260

标签:输出   enum   leetcode   应该   click   题意   target   空间复杂度   number   

原文地址:https://www.cnblogs.com/zaq19970105/p/10733364.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!