学室内设计要学什么软件/免费seo教程分享

学室内设计要学什么软件,免费seo教程分享,基础做网站,公司做网站需要准备什么东西1. 题目链接 LeetCode 137. 只出现一次的数字 II 2. 题目描述 给定一个整数数组 nums,其中每个元素均出现 三次,除了一个元素只出现 一次。请找出这个只出现一次的元素。 要求: 时间复杂度为 O(n),空间复杂度为 O(1)。 示例&a…
1. 题目链接

LeetCode 137. 只出现一次的数字 II


2. 题目描述

给定一个整数数组 nums,其中每个元素均出现 三次,除了一个元素只出现 一次。请找出这个只出现一次的元素。
要求

  • 时间复杂度为 O(n),空间复杂度为 O(1)。

示例

  • 输入:nums = [2,2,3,2] → 输出:3
  • 输入:nums = [0,1,0,1,0,1,99] → 输出:99

3. 示例分析
  1. 常规测试
    • nums = [3,3,3,5] → 输出 5
  2. 负数测试
    • nums = [-1,-1,-1,-2] → 输出 -2
  3. 大数测试
    • nums = [10000,10000,10000,1] → 输出 1

4. 算法思路

核心思想逐位统计 + 模 3 运算

  1. 逐位统计
    • 整数为 32 位,对每一位 i(0 ≤ i < 32),统计所有数字在该位上为 1 的总次数。
  2. 模 3 运算
    • 若某一位的总次数 sum % 3 == 1,说明只出现一次的数在该位上为 1,否则为 0
  3. 构造结果
    • 将所有满足 sum % 3 == 1 的位设置为 1,得到最终结果。

数学原理

  • 出现三次的数的每个二进制位之和必为 3 的倍数,模 3 后为 0。
  • 只出现一次的数在每个二进制位上的值决定了该位模 3 的结果。

5. 边界条件与注意事项
  1. 负数处理
    • 使用算术右移(保留符号位),确保负数二进制位的正确统计。
  2. 整数溢出
    • 输入数组中的数可能在 INT_MININT_MAX 之间,但算法本身不涉及运算溢出。
  3. 全零情况
    • 若所有位统计均为 0,结果为 0(题目保证存在唯一解,无需额外处理)。

6. 代码实现
class Solution 
{
public:int singleNumber(vector<int>& nums) {int ret = 0;// // 逐个处理 ret 的每一个比特位(共32位)for (int i = 0; i < 32; i++) {int sum = 0;// 统计第i位为1的总次数for (int x : nums) if (((x >> i) & 1) == 1) sum++;sum %= 3;// 若模3余1,设置该位为1if (sum == 1) ret |= (1 << i);}return ret;}
};

在这里插入图片描述


与其他方法的对比

方法时间复杂度空间复杂度核心思想
位运算法O(32n) → O(n)O(1)逐位统计,模3运算
哈希表法O(n)O(n)统计频率,遍历查找
排序遍历法O(n log n)O(1)排序后检查每三个连续元素
有限状态机O(n)O(1)位运算模拟三进制状态转移

位运算法的优势
  1. 无额外空间:仅需常数空间,适合内存敏感场景。
  2. 兼容性:正确处理负数和大数,无需类型转换。
  3. 确定性:严格线性时间复杂度,不受数据分布影响。

分步解析

  1. 初始化结果变量

    int ret = 0;
    
    • ret 初始为 0,所有二进制位均为 0
  2. 逐位统计与构造结果

    • 外层循环:遍历 32 位中的每一位。
      for (int i = 0; i < 32; i++)
      
    • 内层循环:统计当前位 i 的总出现次数。
      for (int x : nums) {if (((x >> i) & 1) == 1) sum++;
      }
      
    • 模 3 运算
      sum %= 3;
      
    • 设置结果位
      if (sum == 1) ret |= (1 << i);
      

总结

位运算法通过逐位统计和模 3 运算,以 O(n) 时间复杂度和 O(1) 空间复杂度高效解决了“只出现一次的数字 II”问题。其核心思想是将问题分解到每个二进制位上,利用数学性质过滤重复元素。相较于哈希表法和排序法,位运算法在空间和效率上表现更优,尤其适合处理大规模数据或内存受限的场景。

扩展思考

  • 通用性:若问题改为“其他元素出现 k 次”,可将模 3 改为模 k。
  • 有限状态机:通过位运算模拟三进制状态转移,可进一步优化常数时间。

关键点

  • 理解二进制位的独立性及模运算的过滤作用。
  • 处理负数时算术右移的特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/898946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言:扫雷

在编程的世界里&#xff0c;扫雷游戏是一个经典的实践项目。它不仅能帮助我们巩固编程知识&#xff0c;还能锻炼逻辑思维和解决问题的能力。今天&#xff0c;就让我们一起用 C 语言来实现这个有趣的游戏&#xff0c;并且通过图文并茂的方式&#xff0c;让每一步都清晰易懂 1. 游…

【论文#目标检测】YOLO9000: Better, Faster, Stronger

目录 摘要1.引言2.更好&#xff08;Better&#xff09;3.更快&#xff08;Faster&#xff09;4.更健壮&#xff08;Stronger&#xff09;使用 WordTree 组合数据集联合分类和检测评估 YOLO9000 5.结论 Author: Joseph Redmon; Ali Farhadi Published in: 2017 IEEE Conference …

大数据运维实战之YARN任务内存泄露排查实战:从节点掉线到精准定位的完整指南

1.问题背景&#xff1a;集群内存风暴引发的危机 最近某大数据集群频繁出现节点掉线事故&#xff0c;物理内存监控持续爆红。运维人员发现当节点内存使用率达到95%以上时&#xff0c;机器会进入不可响应状态&#xff0c;最终导致服务中断。这种"内存雪崩"现象往往由单…

AI+金融 应用 使用DeepSeek、Qwen等大模型输入自然语言,得到通达信等行情软件公式代码,导入后使用

AI金融 应用 使用DeepSeek、Qwen等大模型输入自然语言&#xff0c;得到通达信等行情软件公式代码&#xff0c;导入后使用。不会编程&#xff0c;也能行情软件中实现个性化条件选股&#xff0c;个性化技术指标。 AIbxm低估值趋势选股策略&#xff0c;参考提示词&#xff1a; 编…

多语言语料库万卷·丝路2.0开源,数据模态全面升级,搭建文化交流互鉴AI桥梁

3月22日&#xff0c;上海人工智能实验室&#xff08;上海AI实验室&#xff09;联合新华社新闻信息中心、上海外国语大学、外研在线等&#xff0c;发布全新升级的“万卷丝路2.0”多语言语料库&#xff0c;通过构建多语言开源数据底座&#xff0c;以人工智能赋能“一带一路”高质…

多语言生成语言模型的少样本学习

摘要 大规模生成语言模型&#xff0c;如GPT-3&#xff0c;是极具竞争力的少样本学习模型。尽管这些模型能够共同表示多种语言&#xff0c;但其训练数据以英语为主&#xff0c;这可能限制了它们的跨语言泛化能力。在本研究中&#xff0c;我们在一个涵盖多种语言的语料库上训练了…

Linux运维篇-系统io调优

目录 磁盘文件系统虚拟文件系统 文件系统的工作原理文件系统 I/OI/O 的分类缓冲与非缓冲 I/O直接与非直接 I/O阻塞与非阻塞 I/O同步与异步 I/O 查看文件系统容量目录项和索引节点缓存 通用块层I/O 栈磁盘性能指标磁盘 I/O 观测进程 I/O 观测I/O瓶颈的排查思路思路一思路二 I/O优…

C语言笔记(鹏哥)上课板书+课件汇总(动态内存管理)--数据结构常用

动态内存管理 引言&#xff1a;将内存升起一段空间存放数据有几种手段 创建变量&#xff1a;存放一个值创建数组&#xff1a;存放多个连续的一组值 以上开辟的内存空间是固定的&#xff0c;创建大了&#xff0c;空间浪费&#xff0c;创建小了&#xff0c;空间不够。并且一旦…

本地安装deepseek大模型,并使用 python 调用

首先进入 ollama 官网 https://ollama.com/点击下载 下载完成后所有都是下一步&#xff0c;就可以 点击搜索 Models &#xff1a; https://ollama.com/search然后点击下载&#xff1a; 选择后复制: ollama run deepseek-r1:32b例如&#xff1a; 让它安装完成后&#xff1…

Linux wifi driver 注册和设备探测流程

基础流程 wifi驱动加载&#xff08;insmod或者modprobe&#xff09; 设备驱动匹配探测&#xff08;我们常见的probe函数&#xff09; 整体流程 驱动加载 → 注册支持设备 → 设备插入 → 匹配驱动 → 初始化硬件 → 创建网络接口 明确两点 两个流程 驱动加载&#xf…

【机器人】复现 GrainGrasp 精细指导的灵巧手抓取

GrainGrasp为每个手指提供细粒度的接触指导&#xff0c;为灵巧手生成精细的抓取策略。 通过单独调整每个手指的接触来实现更稳定的抓取&#xff0c;从而提供了更接近人类能力的抓取指导。 论文地址&#xff1a;GrainGrasp: Dexterous Grasp Generation with Fine-grained Con…

快速部署Samba共享服务器作为k8s后端存储

由于Ceph Squid&#xff08;v19.2.1&#xff09;‌不原生支持直接导出 SMB 服务器‌&#xff0c;需通过手动集成 Samba 或其他第三方工具实现‌ 所以直接部署最简单的 安装软件包 apt install samba编辑配置文件 vim /etc/samba/smb.conf在最末尾添加以下 # cp /etc/samba/sm…

【MYSQL】索引和事务

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 本期内容讲解 MySQL 中的索引和事务&#xff0c;在学习的过程中&#xff0c;我们需要经常问自己为什么 文章目录 1. 索…

计划管理工具应该具备的能(甘特图)

在当今快节奏的项目管理环境中&#xff0c;高效地规划和跟踪项目进度是至关重要的。甘特图&#xff0c;作为项目管理领域的经典工具&#xff0c;以其直观的时间轴和任务分配方式&#xff0c;深受项目管理者的青睐。 随着数字化时代的到来&#xff0c;甘特图线上编辑器应运而生&…

CSS动画

目录 一、核心概念与语法 1. keyframes 关键帧 2. animation 属性 二、动画调速函数&#xff08;animation-timing-function&#xff09; 1. 预设值 2. 贝塞尔曲线 3. 步进函数&#xff08;steps()&#xff09; 三、动画控制与交互 1. 暂停与恢复 2. JavaScript 控制…

2025年河北省第二届职业技能大赛网络安全项目 模块 B样题任务书

2025年河北省第二届职业技能大赛网络安全项目 模块 B样题任务书 河北省第二届职业技能大赛网络安全项目-模块 B-夺旗挑战赛&#xff08;CTF&#xff09;一、目标系统1二、目标系统2三、目标系统3四、目标系统4 需要真题环境-培训可以私信博主&#xff01; 河北省第二届职业技能…

钞票准备好了吗?鸿蒙电脑 5 月见

3月20日&#xff0c;在华为 Pura 先锋盛典及鸿蒙智行新品发布会上&#xff0c;华为常务董事、终端BG董事长、智能汽车解决方案BU董事长余承东表示&#xff0c;华为终端全面进入鸿蒙时代&#xff0c;今年5月将推出鸿蒙电脑。 在3月20日的华为Pura先锋盛典及鸿蒙智行新品发布会上…

Java高频面试之集合-15

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;解决哈希冲突有哪些方法&#xff1f; 1. 开放寻址法&#xff08;Open Addressing&#xff09; 核心思想&#xff1a;当哈…

GitHub 上的 Khoj 项目:打造你的专属 AI 第二大脑

在信息爆炸的时代&#xff0c;高效管理和利用个人知识变得愈发重要。GitHub 上的 Khoj 项目为我们提供了一个强大的解决方案&#xff0c;它能成为你的 “AI 第二大脑”&#xff0c;帮你轻松整合、搜索和运用知识。今天&#xff0c;就来详细了解下 Khoj。​ Khoj 是什么&#x…

爬虫(requsets)笔记

一、request_基本使用 pip install requests -i https://pypi.douban.com/simple 一个类型六个属性 r.text 获取网站源码 r.encoding 访问或定制编码方式r.url 获取请求的urlr.content 响应的字节类型r.status_code 响应的状态码r.headers 响应的头信息 import requestsur…