/*
* @lc app=leetcode.cn id=136 lang=c
*
* [136] 只出现一次的数字
*
* https://leetcode-cn.com/problems/single-number/description/
*
* algorithms
* Easy (59.12%)
* Total Accepted: 48.6K
* Total Submissions: 82.2K
* Testcase Example: '[2,2,1]'
*
* 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
*
* 说明:
*
* 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
*
* 示例 1:
*
* 输入: [2,2,1]
* 输出: 1
*
*
* 示例 2:
*
* 输入: [4,1,2,1,2]
* 输出: 4
*
*/
int singleNumber(int* nums, int numsSize) {
int i,j;
int res;
for(i=;i<numsSize;i++){
for(j=i+;j<numsSize;j++){
if(nums[j]==nums[i]){
nums[i]=;
nums[j]=;
break;
}
}
}
for(i=;i<numsSize;i++){
if(nums[i]!=){
res = nums[i];
}
}
return res;
}

这是自己的思路,耗时比较大。。。而且也比较侥幸。

把相同的数都变为0,最后那个不为0的数输出就是结果。(看来测试用例没有0这一项。。。)

参考别人的算法。(看到后惊了)

/*
* @lc app=leetcode.cn id=136 lang=c
*
* [136] 只出现一次的数字
*
* https://leetcode-cn.com/problems/single-number/description/
*
* algorithms
* Easy (59.12%)
* Total Accepted: 48.6K
* Total Submissions: 82.2K
* Testcase Example: '[2,2,1]'
*
* 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
*
* 说明:
*
* 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
*
* 示例 1:
*
* 输入: [2,2,1]
* 输出: 1
*
*
* 示例 2:
*
* 输入: [4,1,2,1,2]
* 输出: 4
*
*/
int singleNumber(int* nums, int numsSize) {
int result = nums[];
for (int i = ; i < numsSize; i++)
{
result ^= nums[i]; }
return result;
}

运算符(^)它的作用是两个数的二进制中的每一个比特位,形同为0,不同则为1.即(1 ^ 1 = 0,50 ^ 50 = 0,0 ^ 100 = 100),那如果将这组数据每一位都^则最后的出的那个结果就是只出现一次的那个数。

真的

最新文章

  1. 高级java必会系列一:zookeeper分布式锁
  2. scrollView中的pagingEnabled的功能
  3. Android 使用dagger2进行依赖注入(基础篇)
  4. 如何使用和了解ALTERA的IP核
  5. 使用typeid(变量或类型).name()来获取常量或变量的类型---gyy整理
  6. JavaScript学习心得(三)
  7. 使用Erlang和Yaws开发REST式的服务
  8. Android可以换行的布局
  9. 弹出层之2:JQuery.BlockUI
  10. vue app混合开发蓝牙串口连接(报错java.io.IOException: read failed, socket might closed or timeout, read ret: -1;at android.bluetooth.BluetoothSocket.connect at js/BluetoothTool.js:329)
  11. css内外边距属性
  12. 解题报告 『机器翻译(vector)』
  13. netcore 下加密遇到的问题
  14. python技巧 python2中的除法结果为0
  15. 数据库的连接使用——使用ADO.NET连接数据库
  16. CC2 条理分明-----AACTP教你谈恋爱
  17. GIS案例学习笔记-多边形内部缓冲区地理模型
  18. pure框架
  19. 福利,一张图看懂IT售前工程师修炼之道
  20. Spark之 Spark Streaming整合kafka(并演示reduceByKeyAndWindow、updateStateByKey算子使用)

热门文章

  1. 【Spring实战】—— 7 复杂集合类型的注入
  2. 【Spring实战】—— 11 通过AOP为特定的类引入新的功能
  3. sql developer中英文切换
  4. ZT C++关键字new学习
  5. leetcode 62、Unique Paths
  6. Android开发经验01:31个Android开发实战经验
  7. linux下时间同步的两种方法分享(转)
  8. python:部分内置函数与匿名函数
  9. POJ 最小球覆盖 模拟退火
  10. CSP