当前位置: 首页 > news >正文

快速查找数组中出现奇数次的数字

一个面试题。其实算脑筋急转弯。

我觉得甚至都不能说是智力题。这种题目纯看经验,自己做过类似的,就有印象,就能往这个方面去想。人和人的思维方式都不一样,不一定我就能想到你希望我能想到的。

快速查找数组中出现奇数次的数字

def findOdd(nums):  result = 0  for num in nums:  result ^= num  return result  

主要用到了异或的三条性质

  1. 任何数和0做异或运算,结果仍然是原来的数,即 a ^ 0 = a
  2. 任何数和其自身做异或运算,结果是0,即 a ^ a = 0
  3. 异或运算满足交换律和结合律,即 a ^ b ^ a = (a ^ a) ^ b = 0 ^ b = b

可以举个例子理解一下代码执行过程

例如针对 2,2,2,1,2,1,1

首先:result = 0 ,0^2 =2;

之后:

2^2  = 0;

0^2 = 2;

2^1 = (2^1);

(2^1)^2 = 1;

1 ^ 1 = 0;

0 ^ 1 =1;

结果就是1

还是很巧妙的。

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Web应用加密数据传输方案
  • mac安装xmind
  • 前后端不分离,form前端表单提交,springboot后端list接收
  • <数据集>车内视角行人识别数据集<目标检测>
  • Ubuntu系统入门
  • fpga图像处理实战-水平镜像
  • Linux--网络层 IP协议
  • 数据结构-双向链表 代码实现
  • 二刷代码随想录训练营Day 38|322. 零钱兑换、279.完全平方数、139.单词拆分
  • 证书学习(一)keytool 工具使用介绍
  • Lesson 81+82 Roast beef and potatoes
  • RAG优化技巧 | 7大挑战与解決方式 | 提高你的LLM: 下篇
  • k8s 进阶实战笔记 | Ingress-traefik(一)
  • C++ | Leetcode C++题解之第363题矩形区域不超过K的最大数值和
  • 【linux】sar -d 磁盘性能
  • [Vue CLI 3] 配置解析之 css.extract
  • “大数据应用场景”之隔壁老王(连载四)
  • 10个确保微服务与容器安全的最佳实践
  • AngularJS指令开发(1)——参数详解
  • Centos6.8 使用rpm安装mysql5.7
  • ES6语法详解(一)
  • gops —— Go 程序诊断分析工具
  • JavaScript 基础知识 - 入门篇(一)
  • leetcode388. Longest Absolute File Path
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Node 版本管理
  • opencv python Meanshift 和 Camshift
  • Redux系列x:源码分析
  • socket.io+express实现聊天室的思考(三)
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 当SetTimeout遇到了字符串
  • 浮现式设计
  • 聚类分析——Kmeans
  • 来,膜拜下android roadmap,强大的执行力
  • 小李飞刀:SQL题目刷起来!
  • 新版博客前端前瞻
  • 新手搭建网站的主要流程
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • PostgreSQL之连接数修改
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 通过调用文摘列表API获取文摘
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​如何防止网络攻击?
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #includecmath
  • #QT项目实战(天气预报)
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (十六)Flask之蓝图
  • (学习日记)2024.01.19