只出现一次的数字

  • 题目
  • 大致思路
  • 代码实现

题目

大致思路

方法一:先排序,然后2个2个进行遍历,因为排序之后这个单独的数字一定在偶数下标对应的位置,找到不相同的这两个相邻数字,这两个数字中位于偶数下标的即为那个单独的数字,如果遍历结束还没找到,则为最后一个数字,注意遍历的时候只遍历到长度-1处即可。
方法二:利用set集的特性,来进行实现,出现重复的就删除出set,对对碰的思想,直到遍历完,set中剩余的那一个就是单独的那个数字。
方法三:差值法,排序后,单独的那个数字一定在偶数下标处,将所有偶数下标数字加起来减去所有奇数下标数字的和即为所求值。
方法四:异或法,该题的最佳解法:同的数字异或为0,0与任何数字异或,结果为该数字,即为那个但难度的数字

代码实现

class Solution {public int singleNumber(int[] nums) {/*遍历法,先排序,再遍历 10msArrays.sort(nums);for(int i = 0;i<nums.length-1;i+=2){if(nums[i] != nums[i+1]){return nums[i];}}return nums[nums.length-1];*//* 方法二:利用set集的特性,来进行实现,出现重复的就删除出set,对对碰的思想,直到遍历完,set中剩余的那一个就是           单独的那个数字 20msSet<Integer> set = new HashSet<>();for(int i = 0;i<nums.length;i++){if(!set.add(nums[i])){set.remove(nums[i]);}}return set.iterator().next();*//*方法三:差值法:排序后,单独的那个数字一定在偶数下标处,将所有偶数下标数字加起来减去所有奇数下标数字的和,//即为所求的值。 10msArrays.sort(nums);int count = 0;for(int i = 0;i<nums.length;i++){count = i % 2 == 0 ? count+nums[i] : count-nums[i];}return count;*///*方法四:异或法,相同的数字异或为0,0与任何数字异或,结果为该数字,1ms,异或法应该为最佳解法。int result = 0;for(int i = 0;i<nums.length;i++){result = result ^ nums[i];}return result;}
}

20190811:只出现一次的数字(四种解法)相关推荐

  1. 算法-寻找数组中的重复值,四种解法

    算法-寻找数组中的重复值 寻找数组中的重复值 寻找数组中的重复值 题目来源于:Leetcode-287.本题归类到简单我无法理解-要满足四个条件需要用很特定的解法,面试中要是用到的话很可能是在给自己挖 ...

  2. 奖券数目c语言答案,2015 年蓝桥杯 C 语言 B 组省赛第 1 题: 奖券数目 (四种解法 + 详细分析)...

    题目 奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就觉得不吉利. 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码 ...

  3. 【剑指Offer】剪绳子问题——四种解法

    剪绳子问题--四种解法 题目描述: 输入描述: 返回值描述: 示例1: 解题思路: 方法1:暴力递归 方法2:记忆化递归 方法三:动态规划 方法四,数学原理 题目描述: 给你一根长度为n的绳子,请把绳 ...

  4. 销售额超过公司均值的优秀经销商?SQL比例问题之分组比较的四种解法

    分组比较是看起来比较简单,但是写起来比较麻烦的问题,一般就是先进行两个不同分组计数.求和.求均值,然后两个均值作比较,这样就涉及表连接和判断,写的代码量就比其他问题多很多.它与连续问题.排名问题和累加 ...

  5. 四种解法——求子序列的最大连续子序和(普通解法、求和解法、分治法、O(n)级解法)(面试经典题)

    励志用少的代码做高效表达 在这四种解法里,解法一是通法,可以学到规律和知识,做基础之用:解法二在解法一的基础上做改进,锻炼思维:解法三则是大名鼎鼎的分治法,涉及到递归的知识,算是"高效算法设 ...

  6. python整数拆分dp算法_整数拆分问题的四种解法【转载】

    http://blog.csdn.net/u011889952/article/details/44813593 整数拆分问题的四种解法 原创 2015年04月01日 21:17:09 整数划分问题是 ...

  7. 八皇后问题详解(四种解法)

    所有源码都在github上(https://github.com/seasonyao/eight_queen_question) 如果你去百度百科八皇后这个问题,你会发现人家也是历史上有头有脸的一个问 ...

  8. 最长公共子序列长度的四种解法

    一.题目:求两个字符序列的最长公共字符子序列.给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence).比如字符串1:BDCABA:字符串2:ABCBDAB, ...

  9. 青蛙跳台阶c语言递归函数,青蛙跳台阶问题的四种解法

    http://raychase.iteye.com/blog/1337359 题目:一只青蛙一次可以跳1级台阶,也可以跳2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 这道题还被ITEye放在了博 ...

最新文章

  1. 怎样学好Oracle子查询,Oracle学习(六):子查询
  2. Android Studio在Git上将项目推送到新的Url地址中
  3. mysql timestamp 插入null报错_读MySQL 5.7文档11.2 Date and Time Data Types总结
  4. Canvas 学习笔记1
  5. 前端学习(477):前端简介1
  6. 敏捷软件开发:原则、模式与实践——第12章 ISP:接口隔离原则
  7. linux防火墙配置连接atlas,ATLAS在ubuntu下的安装使用
  8. 金蝶k3财务接口_金蝶云为企业成长而生,让工作更高效!
  9. Java zip and unzip demo
  10. itunes备份包括哪些内容_建筑工程的招标包括哪些内容?
  11. Oracle EBS R12 电子技术参考手册 - eTRM (电子文档)
  12. workbench应力应变曲线_ANSYS WORKBENCH后处理中各种应力结果的详细说明
  13. 挖掘数字资产,生意增长是本质,但数据创新仍有难题待解 | 2022全球数字价值峰会...
  14. R语言|lollipop plot
  15. Webots学习笔记—距离传感器的介绍和四轮小车的避障
  16. 即时与及时有什么区别_即时与及时有什么区别?
  17. C#练习题答案: 字母战争 - 核打击【难度:3级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战
  18. Google Bard vs. ChatGPT 哪家强?结果一目了然
  19. GVM踩坑记录之 Failed to find port_list ‘33d0cd82-57c6-11e1-8ed1-406186ea4fc5‘
  20. Logic Pro X for Mac(专业音频编辑制作工具)

热门文章

  1. 终于!这本Python书彻底玩大了!
  2. 智能音箱,你在窃听我吗?
  3. @程序员,你真的懂数据可视化吗?
  4. 如何 Get 机器学习必备的算法技能? | 技术头条
  5. Top 10 盘点:2019 Java 开发者必学的测试框架、工具和库!
  6. 在传统企业做互联网架构是什么感受?
  7. 滴滴否认上海团队解散;雄安超前布局 5G;小米拆分独立品牌 | 极客头条
  8. 阿里云、腾讯云纷纷宕机后,用户只能坐等损失?
  9. CSDN技术分享——程序员如何快速上手区块链底层技术?
  10. 110亿美金EOS都能瞬间归零,区块链谈何安全保障?