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

物流公司网站制作模板电子商务网站建设的语言及特点

物流公司网站制作模板,电子商务网站建设的语言及特点,那方面 搜索网站,桂林北站有核酸检测点吗题目链接 LeetCode 面试题 17.19. 消失的两个数字 题目描述 给定一个数组 nums,其中包含从 1 到 N 的整数,但缺失了其中的两个。请找出这两个缺失的整数。要求时间复杂度为 O(N),空间复杂度为 O(1)。 示例: 输入:[1…
题目链接

LeetCode 面试题 17.19. 消失的两个数字


题目描述

给定一个数组 nums,其中包含从 1N 的整数,但缺失了其中的两个。请找出这两个缺失的整数。要求时间复杂度为 O(N),空间复杂度为 O(1)
示例

  • 输入:[1] → 输出:[2,3]
  • 输入:[2,3] → 输出:[1,4]

示例分析
  1. 常规情况
    • 输入 [1,3,4],本应包含 1-5,缺失 25
  2. 边界情况
    • 输入 [1],本应包含 1-3,缺失 23
  3. 大数测试
    • 输入 [1,2,...,999],缺失 10001001

算法思路

核心思想位运算 + 分组异或

  1. 异或运算
    • 将所有数组元素和完整的 1N 异或,得到 temptemp 等于两个缺失数的异或结果。
  2. 找不同位
    • 找到 temp 中任意一个为 1 的二进制位 diff,用于将数分为两组。
  3. 分组异或
    • 根据 diff 位的值,将数组元素和完整序列中的数分为两组,分别异或得到两个缺失数。

边界条件与注意事项
  1. 数组长度
    • 输入数组长度为 N-2,需确保遍历范围正确。
  2. 负数处理
    • 使用算术右移处理符号位,保证负数正确参与位运算。
  3. 溢出处理
    • 使用 unsigned int 避免进位左移的未定义行为。

代码实现
class Solution 
{
public:vector<int> missingTwo(vector<int>& nums) {// Step 1: 异或所有元素和完整序列,得到缺失数的异或结果int temp = 0;for (int num : nums) temp ^= num;for (int i = 1; i <= nums.size() + 2; i++) temp ^= i;// Step 2: 找到区分两个数的比特位int diff = 0;while (((temp >> diff) & 1) == 0) diff++;// Step 3: 分组异或int a = 0, b = 0;for (int num : nums) {if ((num >> diff) & 1) b ^= num;else a ^= num;}for (int i = 1; i <= nums.size() + 2; i++) {if ((i >> diff) & 1) b ^= i;else a ^= i;}return {a, b};}
};

在这里插入图片描述


关键步骤解析

  1. 异或运算
    • 遍历数组和完整序列 1NN = nums.size() + 2),所有出现两次的数异或结果为 0,最终 temp 为两缺失数的异或值。
  2. 找不同位
    • 缺失数不同,至少存在一个二进制位不同。找到该位 diff,将数分为两组。
  3. 分组异或
    • 每组中,除缺失数外,其他数均出现两次,异或后抵消。最终每组异或结果即为缺失数。

对比暴力枚举法

对比维度位运算法暴力枚举法
时间复杂度O(N)O(N²)(遍历每个数检查是否在数组)
空间复杂度O(1)O(N)(哈希表存储数组元素)
实现难度需理解位运算和分组逻辑简单,但效率低
适用场景大规模数据,内存敏感小规模数据,无需优化

总结

位运算法通过异或和分组策略,高效解决了缺失数字问题,时间复杂度和空间复杂度均为最优。其核心在于利用异或的归零律和恒等律,将问题分解为独立的二进制位处理,避免了额外空间的使用,适用于大规模数据场景。

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

相关文章:

  • 甘肃嘉峪关建设局网站网站建设与实践心得
  • 公众号申请网站企查查 天眼查
  • 天津+交友+网站建设哪些属于功能型网站
  • 品网站建设网站源码下载安全吗
  • 做装饰网站公司网页设计与制作课程评价内实
  • 做网站公司排名多少钱wordpress 音乐列表
  • 网站开发流程包括需求分析怎样更换动易2006网站模板
  • 宜春网站建设公司cn域名与com域名
  • 长裕建设有限公司网站网站营销外包
  • 北京创意网站建设如何宣传推广
  • 网站制作的网站开发濮阳网站建设电话
  • ngrok做网站服务器cloud域名注册网站
  • 晋中建设集团网站谷歌seo网站推广怎么做优化
  • 数据库怎么做网站建设网站包维护
  • 专业seo网站优化推广排名教程跨境电商排名前十名品牌
  • 互动网站开发北京好的广告公司
  • 沧州市网站设计威海优化推广
  • 微信网站制作免费惠州网红
  • 教育直播平台网站建设费用海口seo外包服务
  • 怎么提升网站流量网站注册qq
  • 建设个人网站赚钱的经历云南哪有网站建设推广
  • html5 可以做网站吗域名注册网站系统
  • 做交通工程刬线的网站公司进一步优化供给推动消费平稳增长
  • 工会网站建设的重要性金华市网站建设公司
  • 鄂州网站建设与设计微信推广怎么弄
  • 南宁本地网站wordpress 手机 模板制作
  • 动漫做视频在线观看网站苏州口碑好的保洁公司
  • 登陆网站怎么做临沂网站建设公司全国
  • 网站开通wordpress 显示pdf
  • 制作网站怎样找公司来帮做做网站怎么租用服务器