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

算法题记录01:

01.消失的数字

缺点:排序的复杂度。

缺点:n太大存在整数溢出风险。

思路3:异或:相同为0,相异为1。

✅ 数学原理(异或性质)

  • 任何数和自身异或结果为 0:a ^ a = 0

  • 任何数和 0 异或结果是它本身:a ^ 0 = a

(​多位整数的异或是按位运算,每一位都独立地遵循单位异或的真值表)

a   = 11010110
0   = 00000000
a^0 = 11010110

  • 异或满足交换律和结合律:a ^ b ^ c = c ^ a ^ b

  • 相同的数异或后为0

具体实现:

第一步:异或数组中实际存在的数字

第二步:异或应该出现的所有数字(0 到 numsSize)

[nums[0],nums[i]]

[0,N]

本质:       

         0         ^         数组里本应该存在的         ^         数组里实际存在的

                (原理:交换律    且        相同的数异或后为0)

两两一对,则最后剩下的那个数(单独的)就是答案。



02.轮转数组

思路一.

真实的旋转次数k=k%N 

总共移动:

1到k,共k次

每次移动:

先保存最后一位,再依次右边移动其他位,一共移动(N-2)次。最后把最后一位放到第一位。(下标   0-N-2)

| 写法    | 含义       | 循环控制表达式里实际用哪个值  |
| `i--` | **先用后减** | 用 `i` 的旧值,再减 1  |
| `--i` | **先减后用** | 先把 `i` 减 1,再用新值 |

缺点:N^2的算法不给过。

思路二:三段逆置

http://www.dtcms.com/a/350864.html

相关文章:

  • 0826xd
  • Trip Footprints 旅行App开发全流程解析
  • UALink是什么?
  • 数字化转型:概念性名词浅谈(第四十二讲)
  • 牛客周赛 Round 106(小苯的方格覆盖/小苯的数字折叠/ 小苯的波浪加密器/小苯的数字变换/小苯的洞数组构造/ 小苯的数组计数)
  • 撤回git 提交
  • 算法训练营day62 图论⑪ Floyd 算法精讲、A star算法、最短路算法总结篇
  • C# 中常见的 五大泛型约束
  • [系统架构设计师]应用数学(二十一)
  • 云计算学习笔记——Linux用户和组的归属权限管理、附加权限、ACL策略管理篇
  • 联邦雪框架FedML自学---第四篇---案例一
  • 浅谈:运用幂的性质
  • 程序的“烽火台”:信号的产生与传递
  • 【基础-单选】使用http发起网络请求,需要以下哪种权限?
  • C6.2:小信号、交流电流增益分析
  • 立轴式小型混凝土搅拌机的设计含14张CAD
  • 客户生命周期价值帮助HelloFresh优化其营销支出
  • 快速了解工业相机中的连续采集、软触发、硬触发和同步触发以及PTP同步触发
  • Spring介绍
  • Linux iptables 防火墙
  • Linux网络编程基础API
  • [灵动微电子六步换向(方波控制)方案MM32BIN560C] 六步换向实现和规律
  • PostgreSQL诊断系列(2/6):锁问题排查全攻略——揪出“阻塞元凶”
  • RK3568 Linux驱动学习——pinctrl和gpio子系统
  • onnx入门教程(四)——ONNX 模型的修改与调试
  • Day24: NumPy 奥德赛:用科学计算的魔法征服数据宇宙!
  • 32.Ansible平台搭建
  • 2024年09月 Python(二级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • NFC线圈设计计算
  • 力扣热题——前K个高频元素