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

Leetcode——137 260找出只出现一次的数

文章目录

  • 找出只出现一次的数
    • 引入
    • Leetcode 260
    • Leetcode 137

找出只出现一次的数

对于数组中有一类题,即某些数据在数组中只出现一遍,需要我们找出,今天我们来看看这个类型的题。

引入

想必大家应该见过这么一道题:

现给定一个数组,这个数组里面只有一个数字出现一遍,其他的数据均出现两遍,请找出只出现一次的那个数字。

这种题是有很多方法做的:
1.暴力查找

直接从头开始定位,往后查找看是否有重复数据。如果有就定位下一个位置。反之返回当前的数据。这个方法很简单,也最好想。但是时间复杂度为O(N^2),当数据个数较多时效率较低。

2.进行统计排序
在学习了八大排序算法后知道了统计排序的优势。先对数据出现次数进行统计,然后对统计数组查找个数为1的那个数据即可。但是时间复杂度为O(N)。

所以我们就在想,有没有办法,能够在线性时间复杂度的情况下还能做到常数级别的空间。
3.答案就是使用我们不太熟悉的按位异或计算

在这之前复习一下按位异或的知识点:
按位异或^,即对数据的补码进行每一个比特位异或操作。
如果该位相同,结果为0,相异为1.

所以就得到如下几个结论:

表达式结果
0 ^ aa
a ^ a0
a ^ b ^ aa ^ a ^ b

所以对于上述数组,我们可以先用一个值int ans去与数组中所有元素进行异或操作。由表格我们知道,每两个一样的数据进行异或是会变成0,而0和其他数异或结果不变。所以当我们对数组中每个数据都进行异或的时候,如果数组中只有一个元素出现一次,那么ans的值一定就是只出现一次的那个数字。

Leetcode 260

原题链接:Leetcode 260
这题改动一下,一个数组中有两个数字只出现一次,其他都是出现两次,且要求要线性时间复杂度和常数级别的空间复杂度。

那我们再来考虑一下异或的操作,定义变量int Xornum = 0,假设数组中只出现一次的数据分别是x1x2,那么最后x的值就是x = x1 ^ x2

现在就需要想办法将x1x2Xornum = x1 ^ x2中分开。

但是这个思路比较难想到,我们一起来看学习一下(我也是学习的):

1.先找到Xornum这个数二进制序列的最低位的1
这里我们先不管原理,先就这么做,找到Xornum的最低位1。
(注意:所有的对二进制码的操作都是对数据的补码进行操作)

应该怎么找呢?
答案就是让Xornum-Xornum这两个数据进行按位与操作,我们举个例子来看看:
在这里插入图片描述
以五为例子,我们知道5的最低位1就是从右往左数第一个位。通过Xornum & -Xornum的操作我们成功的找到了其最低位1,并且这个序列其他位全为0。我们设Xornum & -Xornum得到的结果放在变量int one_pos中。

但是有一件事情要注意,这个Xornum的是int类型,范围在-231 ~ 231 - 1间。对于1 - 231 ~ 231 - 1之间的数据,直接用这个方法就可以求,因为是可以找到对应的相反数的二进制序列。而对于-231这个有符号整形的最小值则不能这么求。

我们之前学过,10000000是-128的补码,其实也是它的源码和反码。这是特殊情况。对于-231 来讲,10000000 00000000 00000000 00000000就是它的补码。最高位实在第一个位置的。所以对于Xornum == -231 的情况,需要特殊处理一下。

所以最后得到表达式int one_pos = (Xornum == INT_MIN) ? Xornum : Xornum & -Xornum,其中INT_MIN是有符号整形的最小值。

2.分类操作
然后就进行一个分类的操作:
我们得到了Xornum的最低位的那个1(one_pos的那个1),而Xornum又是由x1x2按位异或出来的。也就是说Xornum的那一位的1(假设是从右往左数第L位),其实是由x1x2从右往左数第L位按位异或出来的。

为了方便叙述,我们称从右往左第L位第L位
抑或出来为1,那么也就是说,x1的第L位和x2的第L位一定是不同的,一定是一个为0,一个为1。这还是很好理解的。

也就是说,x1x2的第L位和one_pos的第l位的情况是:一个相同那么另外一个就不相同。

那我们就可以依次进行分类了:(以其补码第L位是否和one_pos的第L位是否相同)
对于原数组中,出现两次的那些数据,不管它们被分在哪一类,两个数字是一样的,那肯定是一类,那就放在一起。而只出现一次的两个数据一定是被分在两类的。

3.对不同分类中的数据进行异或
然后我们把不同类的中的所有数据异或起来,那么出现两次的那些数据异或后直接变成0了。那么当不同分类中的数据异或完成后,剩下的自然是只出现两次的数据了。

我们可以举一个例子看看:
在这里插入图片描述
这样子就很轻松的将两个只出现一次的数据分离出了。

最后来看看代码实现:

class Solution {
public:vector<int> singleNumber(vector<int>& nums) {vector<int> v(2, 0);int xornum = 0;for(int x : nums){xornum ^= x;}int INTMIN = (-1) * pow(2,31);int one_pos = (xornum == INTMIN) ? xornum :xornum & (-xornum);for(int x : nums){if(x & one_pos)v[0] ^= x;  elsev[1] ^= x;}return v;}
};

Leetcode 137

原题链接:Leetcode 137

这题对于引入的例子也是修改了一点:只有一个数字出现一次,其他的会出现3次,找出只出现一次的数据,并且要求线性时间复杂度,常数级别空间复杂度。

这题我们再来延续使用以下异或的思想,我们会发现很困难。因为其他数据出现三次,而异或操作只能抵消偶数个。如果按照刚刚的思想来分类也是不太可能的,因为分类的情况下,可能出现一次的数据和出现三次的数据会被分到一块,这是很难办的。

有没有别的办法呢?
答案是有的,我们可以按位处理。

设只出现一次的数据位int ans = 0;。假设我们从低位到高位求出ans的比特位:

对于每一位,无非就是0或者1,因为只有一个数据出现一次,其他的出现三次。那么其他的数据在该位上出现的0或者1一定是3的整数倍次。

很好理解,假设数组[3, 3, 3, 4, 4, 4, 1],假设当前求的是第一位(从右往左数),3的第一位是1,出现三次,4的第一位是0,出现三次。很明显都是三的倍数。而1的第一位是1,出现一次。所以整个数据第一位出现1四次,出现0三次。

以此类推,我们很容易得知:对于整个数组来说,第i位出现的0和1的次数一定是一个为3的倍数,一个比3的整数倍还多一个。多出来的那一个可以用取模操作得到是什么。那么就是ans的第i为的二进制位。

而一个int类型数据也就是32个比特位,所以只需要求32次ans的对应比特位即可。这个时间复杂度是线性的。

然后就是要将二进制位依次填充到ans中:
这个应该如何操作呢?

我们是从右往左依次获取二进制位的。
我们来找一下规律:
在这里插入图片描述
以此类推,只需要执行上述操作32次即可。哪怕第i位是0也是执行上述操作,只不过是把0进行移位后再按位或。

所以来看看代码实现:

class Solution {
public:int singleNumber(vector<int>& nums) {//确定每一个二进制位int ans = 0;//求单独出现的数的二进制补码序列 逆序int i = 0;while(i < 32){int OneNum = 0;for(int x : nums){if((x >> i) % 2) ++OneNum;}OneNum %= 3;ans = ans | (OneNum << i); ++i;}        return ans;}
};

这里非常巧妙的求出第i位二进制序列是1还是0。算出数组中所有数字第i位1的出现次数(Onenum),如果是3的倍数,那么ans的这一位就是0,正好是Onenum取余3的结果。反之如果不是3的倍数,那么ans这一位就是1,也正好是Onenum取余3的结果。

至此就将这题也讲解完了。

相关文章:

Leetcode——137 260找出只出现一次的数

文章目录 找出只出现一次的数引入Leetcode 260Leetcode 137 找出只出现一次的数 对于数组中有一类题&#xff0c;即某些数据在数组中只出现一遍&#xff0c;需要我们找出&#xff0c;今天我们来看看这个类型的题。 引入 想必大家应该见过这么一道题&#xff1a; 现给定一个数…...

【多线程-第四天-自己模拟SDWebImage的下载图片功能-看SDWebImage的Demo Objective-C语言】

一、我们打开之前我们写的异步下载网络图片的项目,把刚刚我们写好的分类拖进来 1.我们这个分类包含哪些文件: 1)HMDownloaderOperation类, 2)HMDownloaderOperationManager类, 3)NSString+Sandbox分类, 4)UIImageView+WebCache分类, 这四个文件吧,把它们拖过来…...

【5G学习】基本概念之多频资源以及子载波和信道

在5G通信中&#xff0c;子载波、信道以及时域、频域、码域、空域是构建无线传输系统的核心概念。它们共同定义了信号的传输方式、资源分配和多维复用技术。以下是详细解释及其相互关系&#xff1a; 一、核心概念定义 1. 子载波&#xff08;Subcarrier&#xff09; 定义&#…...

鸿蒙动画与交互设计:ArkUI 3D变换与手势事件详解

大家好&#xff0c;我是 V 哥。 在鸿蒙 NEXT 开发中&#xff0c;ArkUI 提供了丰富的 3D 变换和手势事件功能&#xff0c;可用于创建生动且交互性强的用户界面。下面详细介绍 ArkUI 的 3D 变换和手势事件&#xff0c;并给出相应的 ArkTS 案例代码。 1. ArkUI 3D 变换 ArkUI 支…...

敏感数据触发后怎么保障安全?

当敏感数据被触发或泄露时&#xff0c;需立即采取系统化措施控制风险。以下为分阶段应对策略&#xff0c;结合技术与管理手段&#xff1a; 一、即时响应阶段 阻断扩散 隔离受影响系统&#xff1a;立即断开网络连接、暂停服务或关闭相关端口。 终止可疑进程&#xff1a;通过华…...

【CVE-2024-10929】ARM CPU漏洞安全通告

安全之安全(security)博客目录导读 目录 一、概述 二、CVE详情 三、受影响产品 四、建议措施 五、致谢 六、版本历史 一、概述 在部分基于Arm架构的CPU中发现了一个潜在安全问题&#xff0c;称为Spectre-BSE&#xff08;Branch Status Eviction&#xff0c;分支状态驱逐…...

高级java每日一道面试题-2025年4月06日-微服务篇[Nacos篇]-如何诊断和解决Nacos中的常见问题?

如果有遗漏,评论区告诉我进行补充 面试官: 如何诊断和解决Nacos中的常见问题&#xff1f; 我回答: 在Java高级面试中诊断和解决Nacos常见问题的综合回答 在Java高级面试中&#xff0c;当被问及如何诊断和解决Nacos中的常见问题时&#xff0c;可以从以下几个方面进行详细阐述…...

【模块化拆解与多视角信息3】教育背景:学历通胀时代的生存法则

教育背景:学历通胀时代的生存法则 写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算…...

无人机3S与4S电池技术对比!

一、基础参数对比 1. 电芯与电压 3S电池&#xff1a;由3节锂电芯串联组成&#xff0c;标称电压为11.1V&#xff08;单节3.7V3&#xff09;&#xff0c;满电电压约12.6V。 4S电池&#xff1a;由4节电芯串联&#xff0c;标称电压14.8V&#xff08;3.7V4&#xff09;&#…...

linux电源管理(二),内核的CPUFreq(DVFS)和ARM的SCPI

更多linux系统电源管理相关的内容请看&#xff1a;https://blog.csdn.net/u010936265/article/details/146436725?spm1011.2415.3001.5331 1 简介 CPUFreq子系统位于drivers/cpufreq目录下&#xff0c;负责进行运行过程中CPU频率和电压的动态调整&#xff0c;即DVFS (Dynami…...

短波红外高光谱相机:高光谱成像在塑料分选中的应用

随着塑料工业的迅猛发展&#xff0c;塑料包装制品需求量增长迅速&#xff0c;消耗量不断上升&#xff0c;废塑料产生量也急剧增加。由于塑料化学结构稳定&#xff0c;难以自然降解&#xff0c;不当使用和处置及累积会造成严重的环境污染和资源浪费。因此&#xff0c;快速、精准…...

通过OBD部署OceanBase社区版集群v4.3.5

以下内容结合OceanBase官方文档进行安装部署测试 官方文档地址&#xff1a;https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016072 一.环境准备 准备三台虚拟机&#xff0c;配置信息如下 192.168.232.8 centos7.9 4c16g 硬盘100g 192.168.232.9 …...

【Java学习笔记】注释

注释 为什么要写注释&#xff1f; 养成良好的编程习惯&#xff0c;方便后续阅读和查看&#xff0c;理顺思路&#xff0c;增加可读性 对自己的代码负责&#xff0c;对别人负责 说明 1. 被注释的文字&#xff0c;不会被 JVM&#xff08;虚拟机&#xff09;解释执行 2. 多行注…...

Python 调用 YOLO ONNX

Python 调用 YOLO ONNX 1 下载ONNX文件2 Python代码 1 下载ONNX文件 ONNX下载地址 2 Python代码 import cv2 from ultralytics import YOLO# 加载 YOLOv11 model YOLO(./yolo11n.pt)# 读取图片 image_path ./11.png img cv2.imread(image_path)# 推理&#xff08;可以传…...

Linux 下 Module 工具的介绍与使用

参考&#xff1a; https://www.fasteda.cn/post/22.html https://modules.readthedocs.io/en/latest/module.html Linux 下 Module 工具的介绍与使用 一、前言 在 Linux 中&#xff0c;当同一款编辑器、运行库、软件存在多个版本且多个版本都需要在不同的场景或人员使用时&a…...

批量归一化(Batch Normalization)原理与PyTorch实现

批量归一化&#xff08;Batch Normalization&#xff09;是加速深度神经网络训练的常用技术。本文通过Fashion-MNIST数据集&#xff0c;演示如何从零实现批量归一化&#xff0c;并对比PyTorch内置API的简洁实现方式。 1. 从零实现批量归一化 1.1 批量归一化函数实现 import t…...

Flutter 文本组件深度剖析:从基础到高级应用

引言 在 Flutter 应用开发中&#xff0c;文本是向用户传达信息的重要媒介。Flutter 提供了丰富且强大的文本组件和相关属性&#xff0c;使开发者能够轻松实现多样化的文本展示效果。无论是简单的静态文本显示&#xff0c;还是复杂的富文本渲染&#xff0c;Flutter 都能满足需求…...

FABC是什么?

在销售和品牌营销领域&#xff0c;FABC 是一种用于构建销售话术和营销信息的框架&#xff0c;其全称为 Features&#xff08;特点&#xff09;、Advantages&#xff08;优势&#xff09;、Benefits&#xff08;利益&#xff09;、Case&#xff08;案例&#xff09;。该模型帮助…...

【MySQL】MVCC工作原理、事务隔离机制、undo log回滚日志、间隙锁

一、什么是MVCC&#xff1f; MVCC&#xff0c;即 Multiversion Concurrency Control&#xff08;多版本并发控制&#xff09;&#xff0c;它是数据库实现并发控制的一种方式。 MVCC 的核心思想是&#xff1a; 为每个事务提供数据的“快照”版本&#xff0c;从而避免加锁&…...

Spring Boot 集成 RocketMQ 全流程指南:从依赖引入到消息收发

前言 在分布式系统中&#xff0c;消息中间件是解耦服务、实现异步通信的核心组件。RocketMQ 作为阿里巴巴开源的高性能分布式消息中间件&#xff0c;凭借其高吞吐、低延迟、高可靠等特性&#xff0c;成为企业级应用的首选。而 Spring Boot 通过其“约定优于配置”的设计理念&a…...

PCL 点云RANSAC提取平面(非内置函数)

文章目录 一、算法实现1.1实现步骤二、实现代码三、实现效果参考资料一、算法实现 1.1实现步骤 1、确定模型。三个点确定一个平面,方程式为 a x + b y + c z + 1 = 0 ax+by+cz+1=0...

中介者模式:理论、实践与 Spring 源码解析

摘要 本论文以中介者模式为核心,系统阐述其设计原理、应用场景及在 Spring 框架中的实现机制。通过机票预订系统、银行交易系统等典型案例,具象化展示模式如何解耦复杂对象交互;结合 Spring 5.3.29 源码,深入剖析事件驱动模型中ApplicationEventPublisher与ApplicationLis…...

2025.04.14【Table】| 生信数据表图技巧

Custom title A set of examples showing how to customize the titles of a table made with GT Custom footer How to customize the footer and the references section of a gt table 文章目录 Custom titleCustom footer 生信数据可视化&#xff1a;Table图表详解1. R语…...

Unified Modeling Language,统一建模语言

UML&#xff08;Unified Modeling Language&#xff0c;统一建模语言&#xff09;是一种标准化的图形化建模语言&#xff0c;用于可视化、规范和文档化软件系统的设计。UML 提供了一套通用的符号和规则&#xff0c;帮助开发者、架构师和团队成员更好地理解和沟通软件系统的结构…...

OCP证书有效期是永久,但需要更新

在数据库管理领域&#xff0c;OCP证书作为Oracle认证体系中的重要组成部分&#xff0c;一直是数据库专业人士追求的目标。许多考证者会有疑惑:OCP证书是永久有效的吗&#xff1f;需要更新吗&#xff1f; Oracle官方明确规定&#xff1a;OCP证书一经获得&#xff0c;终身有效。无…...

服务器本地搭建

socket函数 它用于创建一个新的套接字&#xff08;socket&#xff09;。 函数原型 #include <sys/socket.h> int socket(int domain, int type, int protocol);参数解释 domain&#xff1a;它指定了通信所使用的协议族&#xff0c;常见的取值如下&#xff1a; AF_INET…...

调节磁盘和CPU的矛盾——InnoDB的Buffer Pool

缓存的重要性 无论是用于存储用户数据的索引【聚簇索引、二级索引】还是各种系统数据&#xff0c;都是以页的形式存放在表空间中【对一个/几个实际文件的抽象&#xff0c;存储在磁盘上】如果需要访问某页的数据&#xff0c;就会把完整的页数据加载到内存中【即使只访问页中的一…...

[dp12_回文子串] 最长回文子串 | 分割回文串 IV

目录 1.回文子串 题解 2.最长回文子串 题解 3.分割回文串 IV 题解 dp[i][j] 表示 s 字符串 [i, j] 的子串&#xff0c;是否是回文串( 建始末表&#xff09; 将两个 for 循环的结果&#xff0c;借助二维 dp 来存 1.回文子串 链接&#xff1a;647. 回文子串 给你一个字符…...

分布式应用架构的演变

整体演变过程 第一阶段&#xff1a;单一应用架构 单一应用架构&#xff0c;是把所有服务都放在一个项目中&#xff0c;进行打包部署到服务器上&#xff0c;如果流量特别大的话&#xff0c;就在另外的服务器上部署相同的功能模块用来分摊流量。但是这样的话&#xff0c;一旦有某…...

zephyr RTOS 中 bt_le_adv_start函数的功能应用

目录 概述 1 功能 1.1 功能介绍 1.2 函数原型 2 参数说明 2.1 广播参数&#xff08;bt_le_adv_param&#xff09; 2.2 常用广播选项&#xff08;options&#xff09; 2.3 广播数据&#xff08;bt_data&#xff09; 3 示例代码 3.1 启动可连接广播&#xff08;带设备名…...

双按键控制LED(中断优先级)

1.启动时&#xff0c;两个LED灯熄灭&#xff0c;1秒钟后&#xff08;定时器实现&#xff09;&#xff0c;LED自动点亮&#xff1b; 2.按键1按下后&#xff0c;通过中断int0把两个LED熄灭5s时间&#xff0c;int0优先级设置为最高&#xff08;优先级必须设置&#xff0c;设置后才…...

美团即时零售大动作,将独立的闪购将会改变什么?

4月12日上午&#xff0c;美团核心本地商业CEO王莆中在社交媒体上发文&#xff0c;宣布美团将在下周正式发布即时零售品牌&#xff0c;标志着美团将进一步发展即时零售业务。 首先&#xff0c;从市场格局角度来看&#xff0c;美团将独立的闪购品牌推出&#xff0c;会进一步加剧…...

如何安装git?

以下是 Windows、macOS 和 Linux 系统安装 Git 的详细步骤&#xff1a; 一、Windows 系统安装 Git 下载安装包 访问 Git 官网下载页&#xff0c;点击下载 Windows 版安装程序&#xff08;如 Git-2.45.1-64-bit.exe&#xff09;。 运行安装程序 安装选项&#xff1a; 选择安装路…...

Ubuntu上docker、docker-compose的安装

今天来实践下Ubuntu上面安装docker跟docker-compose&#xff0c;为后面安装dify、fastgpt做准备。 一、安装docker sudo apt-get updatesudo apt-get install docker.io 然后系统输入 docker --version 出现下图即为docker安装成功。 二、安装docker-compose 我先看下系统…...

ubuntu如何设置静态ip

服务器有时是通过dhcp动态获取ip的&#xff0c;有时出于远程登录方便的考虑&#xff0c;会将其设置为静态ip&#xff0c;以下是设置静态ip的方法 在 Ubuntu 中设置静态 IP 的方法取决于你使用的网络管理工具&#xff08;如 netplan、NetworkManager 或 ifconfig&#xff09;。…...

js原型和原型链

js原型&#xff1a; 1、原型诞生的目的是什么呢&#xff1f; js原型的产生是为了解决在js对象实例之间共享属性和方法&#xff0c;并把他们很好聚集在一起&#xff08;原型对象上&#xff09;。每个函数都会创建一个prototype属性&#xff0c;这个属性指向的就是原型对象。 …...

大数据 - 2. Hadoop - HDFS

前言 HDFS&#xff1a;分布式文件系统 为什么海量数据需要分布式存储技术&#xff1f; 文件过大时&#xff0c;单台服务器无法承担&#xff0c;要靠数量来解决。数量的提升带来的是网络传输、磁盘读写、CPU、内存等各方面的提升。 众多的服务器一起工作&#xff0c;如何保证…...

嵌入式硬件常用总线接口知识体系总结和对比

0.前言 在嵌入式工程实现中,多多少少我们都使用过总线,各种各样的总线应用于不同场合,不同场景有不同的优势,但是我们在作为工程师过程中在如何选择项目合适的总线,根据什么来选?需要我们对项目全局和总线特征有所了解,本文目的就是对比多种总线的关键特征 我们在聊到…...

prime 1 靶场笔记(渗透测试)

环境说明&#xff1a; 靶机prime1和kali都使用的是NAT模式&#xff0c;网段在192.168.144.0/24。 Download (Mirror): https://download.vulnhub.com/prime/Prime_Series_Level-1.rar 一.信息收集 1.主机探测&#xff1a; 使用nmap进行全面扫描扫描&#xff0c;找到目标地址及…...

(二十四)安卓开发中的AppCompatActivity详解

在安卓开发中&#xff0c;AppCompatActivity 是一个非常核心的类&#xff0c;它继承自 Activity&#xff0c;并通过 Android Support Library&#xff08;现已迁移至 AndroidX&#xff09;提供了对 ActionBar 和 Material Design 的支持。它的主要作用是帮助开发者在不同版本的…...

AI大模型+全渠道整合:容联七陌智能客服赋能制造业升级

自《中国制造2025》战略提出以来&#xff0c;制造业的智能化发展进入快车道&#xff0c;但行业仍面临劳动力成本上升、供应链不透明、客户需求碎片化等挑战。企业亟需通过技术手段实现降本增效&#xff0c;而智能化客户服务成为关键突破口。 与此同时&#xff0c;客服行业正经历…...

Vue 技术解析:从核心概念到实战应用

Vue.js 是一款流行的渐进式前端框架&#xff0c;以其简洁的 API、灵活的组件化结构和高效的响应式数据绑定而受到开发者的广泛欢迎。本文将深入解析 Vue 技术的核心概念、原理和应用场景&#xff0c;帮助开发者更好地理解和使用 Vue.js。 一、Vue 的设计哲学与核心概念 &…...

中英文提示词对AI IDE编程能力影响有多大?

深度剖析 &#x1f9e0;&#xff1a;中英文提示词对AI IDE编程能力影响有多大&#xff1f;&#xff08;附实战建议&#xff09; 作者&#xff1a;AI助手 | 日期&#xff1a;2023-10-27 | 标签&#xff1a;AI, IDE, Prompt Engineering, LLM, 编程效率 摘要&#xff1a;随着 AI…...

ARM处理器程序烧写方式

一、烧写原理 无论是jtag还是串口烧写&#xff0c;本质都是先通过上位机&#xff08;keil 或者flymcu或者芯片官方上位机等烧写bin的上位机&#xff09;往mcu的ram里烧写一段代码即.FLM文件&#xff0c;这段代码在上位机&#xff08;keil体现在配置项里&#xff0c;flymcu应该…...

AI 项目详细开发步骤指南

AI 项目详细开发步骤指南 一、环境搭建详解 1. JDK 17 安装与配置 Windows 系统安装步骤&#xff1a; 访问 Oracle 官网下载 JDK 17 安装包&#xff1a;https://www.oracle.com/java/technologies/downloads/#java17下载 Windows x64 Installer 版本双击安装包&#xff0c;…...

文本纠错WPS插件:提升文档质量的利器

文本纠错WPS插件&#xff1a;提升文档质量的利器 引言 在数字化办公日益普及的今天&#xff0c;文档的质量直接影响到我们的工作效率和形象。一个错别字或标点错误&#xff0c;可能就会让我们的专业形象大打折扣。今天&#xff0c;我要向大家介绍一款强大的WPS插件——文本纠…...

Node.js 模块包的管理和使用是

一、模块包的概念 1.模块分类&#xff1a; 核心模块&#xff1a;Node.js 内置模块&#xff08;如 fs, http, path&#xff09;&#xff0c;无需安装直接引用。 本地模块&#xff1a;开发者自己编写的模块文件&#xff0c;通过相对路径引入。 第三方模块&#xff1a;通过 npm…...

腾讯云golang一面

go垃圾回收机制 参考自&#xff1a;https://zhuanlan.zhihu.com/p/334999060 go 1.3 标记清除法 缺点 go 1.5 三色标记法 屏障机制 插入屏障 但是如果栈不添加,当全部三色标记扫描之后,栈上有可能依然存在白色对象被引用的情况(如上图的对象9). 所以要对栈重新进行三色标记扫…...

【Three.js基础学习】35.Particles Cursor Animation Shader

前言 关于着色器应用和画布&#xff0c;实现黑白色照片动态效果 一、代码 script.js ​ import * as THREE from three import { OrbitControls } from three/addons/controls/OrbitControls.js import particlesVertexShader from ./shaders/particles/vertex.glsl import p…...

安卓性能调优之-掉帧测试

掉帧指的是某一帧没有在规定时间内完成渲染&#xff0c;导致 UI 画面不流畅&#xff0c;产生视觉上的卡顿、跳帧现象。 Android目标帧率&#xff1a; 一般情况下&#xff0c;Android设备的屏幕刷新率是60Hz&#xff0c;即每秒需要渲染60帧&#xff08;Frame Per Second, FPS&a…...