这一题相对简单,但是代码质量可能不是很好,我分享一下我的做题笔记以及做题过程给各位欣赏,有什么不足望各位大佬指出来

原题目,各位小伙伴也可以试着做一下

  1. . 落单的数
  2. 中文English
  3. 给出 * n + 1个数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
  4.  
  5. 样例
  6. 样例 :
  7.  
  8. 输入:[,,,,,,]
  9. 输出:
  10. 解释:
  11. 3出现一次
  12. 样例 :
  13.  
  14. 输入:[,,]
  15. 输出:
  16. 解释:
  17. 1出现一次
  18. 挑战
  19. 一次遍历,常数级的额外空间复杂度
  20.  
  21. 注意事项
  22. n
  1. 做题笔记
  1. 我个人进行形象化理解就是,
  2. 要么丢进去,要么拿出来,两次的时候就是拿出来,如果只有一次的话那就是丢进去
  3.  
  4. 那么就有两个动作,丢进去、拿出来
  5.  
  6. 先定义一个空数组B,用于作为一个存储状态盒
  7.  
  8. 先循环A的每个数,每一个数都对B数组进行扫描,如果B里存在就删掉,不存在就给添加入B数组,这样一来落单的数字就能出来了。

实现代码

  1. /**
  2. * @param A: An integer array
  3. * @return: An integer
  4. */
  5. const singleNumber = function (A) {
  6. var b = new Array();
  7. for (var i = 0; i <= A.length; i++) {
  8. var found = -1;// 初始化
  9. for(var j=0;j <= b.length;j++) {
  10. if (b[j] == A[i]) {
  11. found = j;
  12. }
  13. }
  14. if (found > -1) {
  15. b.splice(found,1);// 删除
  16. }else {
  17. b.push(A[i]);// 推入
  18. }
  19. }
  20. if (b.length > 0) {// 这一步实际是防止没有落单的数导致报错
  21. // 实际上这样还能获取多个落单数,这里取一个就够了
  22. return b[0];
  23. }
  24. }

拿了个第二名哈哈哈~~~

第一名永远是值得羡慕的对象,这样都能少一毫秒[惊讶]

LintCode笔记 - 82.落单的数的更多相关文章

  1. Lintcode 82.落单的数

    -------------------------------- 这道题好坑啊,自己说是2*n+1个数字,结果有组测试数据竟然传了个空数组进来... 经典位算法: n^n==0 n^0==n AC代码 ...

  2. lintcode 落单的数(位操作)

    题目1 落单的数 给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字. 链接:http://www.lintcode.com/zh-cn/problem/single ...

  3. lintcode 中等题:Single number III 落单的数III

    题目 落单的数 III 给出2*n + 2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字. 样例 给出 [1,2,2,3,4,4,5,3],返回 1和5 挑战 O(n)时间复杂度, ...

  4. lintcode 中等题:Singleton number II 落单的数 II

    题目 落单的数 II 给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字. 样例 给出 [1,1,2,3,3,3,2,2,4,1] ,返回 4 挑战 一次遍历,常数级 ...

  5. lintcode:落单的数

    题目: 落单的数 给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字. 样例 给出 [1,2,2,1,3,4,3],返回 4 挑战 一次遍历,常数级的额外空间复杂度 ...

  6. 84 落单的数 III

    原题网址:http://www.lintcode.com/zh-cn/problem/single-number-iii/# 给出2*n + 2个的数字,除其中两个数字之外其他每个数字均出现两次,找到 ...

  7. 83 落单的数 II

    原题网址:http://www.lintcode.com/zh-cn/problem/single-number-ii/ 给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这 ...

  8. [codevs3295]落单的数

    题目描述 Description 有n个数(n是奇数),其中n-1个数两两成对,有1个数落单,找出这个数.要求O(n)的时间复杂度,O(1)的空间复杂度 输入描述 Input Description ...

  9. LeetCode 136. Single Number (落单的数)

    Given an array of integers, every element appears twice except for one. Find that single one. Note:Y ...

随机推荐

  1. 5、vue的传值

    1-父组件向子组件  -父组件向孙子组件传值(属性传值) //父组件<template> <div id='app'> <headera v-bind:hea=" ...

  2. akka-typed(7) - cluster:sharding, 集群分片

    在使用akka-typed的过程中发现有很多地方都简化了不少,变得更方便了,包括:Supervision,只要用Behaviors.supervise()把Behavior包住,很容易就可以实现这个a ...

  3. 调用webservice接口,报错:(十六进制值0x01)是无效的字符

    #事故现场 调用webservice接口,报错:(十六进制值0x01)是无效的字符. 如图: 意思是webservice返回的信息中包含无效的字符,无法解析成xml: #分析 使用postman向we ...

  4. Looooops(求解同余方程、同余方程用法)【拓展欧几里得】

    Looooops(点击) A Compiler Mystery: We are given a C-language style for loop of type for (variable = A; ...

  5. shutil模块的使用

    shutil模块 高级的文件,文件夹,压缩包处理模块 shutil.copyfileobj(fsrc,fdst,length) 将文件内容拷贝到另外一个文件中,可以部分.fdst目标length长度( ...

  6. WPS2016ProPlus_normal 安装包+序列号

    WPS OFFICE 2016 安装 链接:https://pan.baidu.com/s/1dfjNFDxcl1n2fvYTt9c86A 提取码: ij8e 下载解压:.txt是序列号,.exe是安 ...

  7. Windows 程序设计(4) MFC-01前置知识

    1. Windows编程简介 1.0 开发环境 操作系统 Win10 IDE: VS2017 1.1 Windows程序简介 Windows程序呢也主要分那么几种,例如:exe的可执行程序,dll的动 ...

  8. cb25a_c++_函数对象简介

    cb25a_c++_函数对象简介预定义的函数对象https://blog.csdn.net/txwtech/article/details/104382505negate<type>()p ...

  9. EPLAN文本输入怎么转行,路径功能文本换行方法

    EPLAN文本输入怎么转行,路径功能文本换行方法 在输入文本时,按CTRL+ENTER可以将字体换行 Ctrl+回车键

  10. break,continue,break的用法与区别

    1.return 语句的作用 (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行.       (2) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方 ...