求一个数组出现奇数次的数

  • 1.一个数组只有一个数出现奇数次其它都出现偶数次
    • 用异或解决
    • 同样用hashmap也可以
  • 2.一个数组有两个数出现奇数次其它都出现偶数次
    • 用位运算

1.一个数组只有一个数出现奇数次其它都出现偶数次

用异或解决

public class EvenTimesOddTimes {public static void main(String[] args) {int[] arr = {1,2,2,3,2,3,2,1,3};printOddTimesNum1(arr);}public static void printOddTimesNum1(int[] arr) {int eor = 0;for (int i : arr) {eor ^= i;}System.out.println(eor);}
}


这样的话时间复杂度为O(n)

同样用hashmap也可以

public static void printOneNum(int[] arr) {HashMap<Integer, Integer> map = new HashMap<>();for (int cur : arr) {map.put(cur,map.getOrDefault(cur,0)+1);}map.forEach((k,v) -> {if (v%2!=0) {System.out.println(k);}});}

2.一个数组有两个数出现奇数次其它都出现偶数次

用位运算

//含有两个奇数public static void printOddTimesNum2(int[] arr) {int eor = 0;for (int cur : arr) {eor ^= cur;}//eor = a^b//eor != 0//eor必有一位含有1int rightOne = rOneNum(eor);    //提取最右侧的1int onlyOne = 0; //eor'for (int cur : arr) {if (rOneNum((cur & rightOne))==rightOne)onlyOne ^= cur;}System.out.println(onlyOne+" "+(eor ^ onlyOne));}//该函数求最右边的1public static int rOneNum(int num) {return num & (~num + 1);}```
![在这里插入图片描述](https://img-blog.csdnimg.cn/2e608c5b8cf44298bda7b069ac6bfb56.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDYyOTA1NA==,size_16,color_FFFFFF,t_70)
记录一下 左神还是牛逼的

2021-07-23 B站观看力扣算法视频第一天相关推荐

  1. 程序员面试需要刷力扣算法题吗

    这里写目录标题 1. 程序员面试需要刷力扣算法题吗 1.1. 算法题的一些特征 1.2. 为什么要考查算法 1.3. 目前面试主要考查 3 类 1. 程序员面试需要刷力扣算法题吗 1.1. 算法题的一 ...

  2. LeetCode 力扣算法题解汇总,All in One

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: https://fuxuemingzhu.cn 关键词:LeetCode,力扣,算法,题解,汇总,解析 把自己刷过的所有题目做一个整理, ...

  3. 力扣算法1~10题(js)

    标题 力扣算法 文章目录 标题 1.贩卖柠檬水,能否正确找零 错误 思路一: 解法一 缺点:耗时太长 解法二(大佬解法) 2.返回nums中和为target的两个数的下标 解法 3.两数相加 思路与算 ...

  4. 力扣算法 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

    学习内容 力扣算法 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 具体内容 509. 斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 ...

  5. 312戳气球——力扣算法系列2020.07.19 Python

    第25天 2020.07.19 周日 难度系数:困难 题目:有n个气球,编号为0到n-1,每个气球上都标有一个数字,这些数字存在数组nums中. 现在要求你戳破所有的气球.如果你戳破气球i,就可以获得 ...

  6. 力扣算法题—042接雨水

    1 #include"000库函数.h" 2 //一点头绪都没有 3 //然后就自己按自己的意思来一遍 4 //好像没有用算法 5 //16ms,让我激动一把 6 7 class ...

  7. 力扣算法之两矩形求和

    原题目 223. 矩形面积 给你 二维 平面上两个 由直线构成的 矩形,请你计算并返回两个矩形覆盖的总面积. 每个矩形由其 左下 顶点和 右上 顶点坐标表示: 第一个矩形由其左下顶点 (ax1, ay ...

  8. 力扣1024视频拼接

    1.1024. 视频拼接 来源力扣解析:1024力扣题解 难度中等261 你将会获得一系列视频片段,这些片段来自于一项持续时长为 time 秒的体育赛事.这些片段可能有所重叠,也可能长度不一. 使用数 ...

  9. 力扣算法题-19.秋叶收藏集 C语言实现

    题目 小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片 ...

最新文章

  1. er图主码外码怎么看_霸屏了!因为这个老师,广科er纷纷表示要转专业了
  2. javascript中使用重载
  3. wpa_supplicant 详解(9) - 4 way handshake
  4. Luogu P1108 低价购买 DP
  5. python数据科学-单变量数据分析
  6. 蓝桥杯JAVA---2013---B----世纪末的星期
  7. 服务器并发性能报告,一般的服务器瞬时并发应该怎么样才算是合格呢?
  8. vivo S10系列正式发布 引领“自然美”自拍潮流
  9. hibernate批量上传
  10. softmax回归的从零开始实现
  11. Xcode9 调整模拟器大小
  12. 如何一键开通局域网共享
  13. [原创] 适合新手的转手绘教程[ JJ ]
  14. inssider序列号_inSSIDer v4.2.1.109完美注册版
  15. 液晶屏的接口信号RGB_TTL、LVDS、MIPI
  16. 线性代数学习笔记(一)——二阶和三阶行列式
  17. 使用BeautifulSoup爬取豆瓣电影排行榜
  18. QlikView处理数据
  19. 16、Mediator 仲裁者模式
  20. 用 Uno Platform 构建一个 Kanban-style Todo App

热门文章

  1. 互联网各大公司职级和薪资一览
  2. 软件测试面试总结——常见的面试问题
  3. pytorch统计矩阵非0的个数_PyTorch常见的12坑
  4. mysql优化零基础_MySQL8数据库 | MySQL调优|MySQL底层原理|MySQL零基础新手教程
  5. oracle引号的嵌套,3.4.2 在一个直接量字符串中嵌入单引号
  6. 一周成python大神_python大神进阶路线
  7. mysql 多行转换多列 列不确定_多行转多列,行数和列数不确定
  8. 单片机机器周期怎么计算公式_什么是晶振,对于单片机来说它有什么重要作用?...
  9. 如何用计算机完成一片文稿制作,怎样在家用电脑上制作幻灯片?
  10. android 画板菜单,Android画板实现