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

福田建网站公司互联网科技网站

福田建网站公司,互联网科技网站,wordpress后台链接,免费网站建设模块1. 题目链接 LeetCode 268. 丢失的数字 2. 题目描述 给定一个包含 [0, n] 范围内 n 个不同整数的数组 nums(实际长度为 n),找出数组中缺失的那个数字。 示例: 输入:nums [3,0,1] → 输出:2(…
1. 题目链接

LeetCode 268. 丢失的数字


2. 题目描述

给定一个包含 [0, n] 范围内 n 个不同整数的数组 nums(实际长度为 n),找出数组中缺失的那个数字。
示例

  • 输入:nums = [3,0,1] → 输出:2(缺失数字为 2
  • 输入:nums = [0,1] → 输出:2(缺失数字为 2

3. 示例分析
  1. 缺失中间值
    • nums = [0,1,3,4] → 缺失 2
  2. 缺失最大值
    • nums = [0,1,2] → 缺失 3(数组长度 n=3,范围为 [0,3])。
  3. 空数组
    • nums = [] → 缺失 0(题目保证 n ≥ 1,实际无需处理)。

4. 算法思路

核心思想异或运算的归零律与恒等律

  1. 异或性质
    • 归零律:a ^ a = 0
    • 恒等律:a ^ 0 = a
    • 交换律:a ^ b = b ^ a
  2. 问题转化
    • 假设完整数组为 [0,1,2,...,n],实际数组 nums 缺少其中一个数。
    • 对完整数组和实际数组进行异或运算,重复的数会被抵消,最终结果为缺失值。

实现步骤

  1. 遍历实际数组:将所有元素异或到结果 ret
  2. 遍历完整数组:将 [0,1,...,n] 中的每个数异或到 ret
  3. 最终结果ret 即为缺失的数字。

5. 边界条件与注意事项
  1. 输入数组有效性
    • 题目保证数组元素唯一且范围正确,无需额外处理重复或越界值。
  2. 缺失最大值的处理
    • 若缺失 n,第二个循环中 i 的范围为 0~n,仍能正确异或得到结果。
  3. 异或运算顺序无关性
    • 异或满足交换律,遍历顺序不影响最终结果。

6. 代码实现
class Solution 
{
public:int missingNumber(vector<int>& nums) {int ret = 0;// 第一轮异或:处理实际数组for (int num : nums) ret ^= num;// 第二轮异或:处理完整数组 [0, 1, ..., n]for (int i = 0; i <= nums.size(); i++) ret ^= i;return ret;}
};

在这里插入图片描述


算法分步解析

  1. 初始化结果变量

    int ret = 0;
    
    • ret 初始为 0,因为 0 ^ a = a
  2. 第一轮异或遍历实际数组

    for (int num : nums) ret ^= num;
    
    • 假设实际数组为 [3,0,1],则 ret 结果为 3 ^ 0 ^ 1 = 2
  3. 第二轮异或遍历完整数组

    for (int i = 0; i <= nums.size(); i++) ret ^= i;
    
    • 完整数组为 [0,1,2,3],此时 ret 计算为 2 ^ 0 ^ 1 ^ 2 ^ 3 = 3
  4. 返回结果

    return ret;
    
    • 最终结果为 3,即缺失的数字。

与暴力枚举法的对比

方法时间复杂度空间复杂度核心思想
异或法O(n)O(1)利用异或抵消重复元素
哈希表法O(n)O(n)存储已出现元素,查找缺失值
数学求和法O(n)O(1)计算理论总和与实际和的差值
暴力枚举法O(n²)O(1)遍历检查每个数是否在数组中

异或法的优势
  1. 无额外空间:仅需常数空间,适合内存敏感场景。
  2. 避免溢出风险:相较于求和法,异或法无需处理大数溢出问题。
  3. 高效性:两次线性遍历即可解决问题。

总结

异或法通过巧妙的位运算,将时间复杂度控制在 O(n),同时避免使用额外空间,是解决“缺失数字”类问题的最优方案。其核心在于利用异或运算的数学性质,将重复元素抵消,最终定位缺失值。实际应用中,该方法还可扩展至其他需要“去重”或“找不同”的场景,例如只出现一次的数字等问题。

关键点

  • 异或运算的归零律和恒等律是算法的基础。
  • 两次遍历分别处理实际数组和完整数组,确保所有元素成对抵消。
http://www.dtcms.com/wzjs/805209.html

相关文章:

  • 交互网站 百度成都网站建设公司高新
  • 潍坊网站模板建站网站设计布局
  • 做校园网站网页设计中界面设计尺寸为
  • 研磨 东莞网站建设山西临汾建设局网站
  • php 企业网站cms门户网站建设资质
  • 网站开发平台及常用的开发工具厦门百度关键词seo收费
  • soho外贸建站wordpress迁移ghost
  • 基于php mysql的网站开发个人网站域名取名
  • wap手机网站建站怎么制作游戏需要什么软件
  • 手机版网站嵌入代码网页制作程序代码
  • 静态网站的短处手机网站开发框架php
  • 乡村两级先锋网站建设推广搜索怎么选关键词
  • 高校门户网站建设优秀文创产品设计案例及分析
  • 计算机网站建设建模培训
  • 如何创建平台类网站合肥万户网站建设
  • 建网站是自己做还是用CMS局域网安装wordpress
  • 株洲市荷塘区城乡建设局网站地方门户源码
  • js网站特效小偷程序做的网站能用吗
  • 张家口网站建设假冒网站能通过备案登记吗
  • 南宁专业网站制作前十排名东莞网站建设 乐云seo
  • 北京网站制作公司转型方向企业名称预先核准通知书
  • 上海网站建设案例新浪博客seo
  • 哪个网站可以接程序项目来做wordpress装修门户
  • 游戏开发与网站开发哪个难推荐做木工的视频网站
  • 合肥网站建设专业设计seo是什么部门
  • 临汾哪做网站百度双站和响应式网站的区别
  • 梅江区建设局网站遂溪手机网站建设公司
  • dw做网站链接数据库中等职业学校示范建设专题网站
  • 重庆开发网站企业开办网站
  • 网站建设的书籍有哪些西安互联网设计公司