【算法专题训练】04、只出现一次的数字

opencv+CNN算法实现实时数字识别(完整教程) 数字识别是计算机视觉领域中的一个重要任务,它涉及将输入的手写数字图像分类为特定的数字。实时数字识别具有广泛的应用,包括手写数字识别、自动识别信用卡号码等。本教程将介绍如何使用 OpenCV(Open Source Computer Vision Library)和卷积神经网络(Convolutional Neural Network,CNN)来实现实时数字识别。OpenCV 是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法,包括图像处理、特征检测、对象跟踪等功能。 阅读详情

1、只出现一次的数字I

1.1、题目信息

  • https://leetcode.cn/problems/single-number/description/
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
 
示例 1 :
输入:nums = [2,2,1]
输出:1

1.2、解题:

/**
 * 1、审题:
 * - 输入一个整数数组,其中一个元素出现了一次,其他元素都出现了两次,求这个只出现一次的元素
 * 2、解题:异或位运算
 * - 一个数字异或^自己,最终结果为0.
 * - 将数组中所有元素进行异或操作,出现两次的元素进行异或操作结果为0,最终与出现一次的元素进行异或操作最终结果为出现一次的元素
 */
int singleNumber(vector<int> &nums)
{
    int res = nums[0];
    for (int i = 1; i < nums.size(); i++)
    {
        res ^= nums[i];
    }
    return res;
}

2、只出现一次的数字II

2.1、题目信息:

  • https://leetcode.cn/problems/WGki4K/description/
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

示例 1:
输入:nums = [2,2,3,2]
输出:3

示例 2:
输入:nums = [0,1,0,1,0,1,100]
输出:100

2.2、解题思路:

  • 将整数转换成二进制,相同的数字出现三次,那二进制形式下,位数也会出现三次,通过与3相除取余数,求得只出现一次的元素
例子:{2,2,3,2}
全部转成二进制形式:
0010
0010
0011
0010
->将所有二进制位数相加得到 0041
->将位数除于3得到余数: 0011 ->转成十进制就是3

代码实现

int singleNumber(vector<int> &nums)
{
    int bits[32] = {0};
    int res = 0;

    for (int i = 0; i < nums.size(); i++)
    {
        int num = nums[i];
        for (int j = 0; j < 32; j++)
        {
            bits[32 - j - 1] += (num >> j) & 1;
        }
    }

    for (int i = 0; i < 32; i++)
    {
        int bitNum = bits[32 - i - 1] % 3 * (1 << i);
        res += bitNum;
    }

    return res;
}

3、总结

  • 异或位运算操作,数字自己异或自己的结果为0
  • C++数组默认元素为随机值,要设置默认值全部为元素0的操作:int arr[32] = {0}
  • 求整数二进制的位数,将元素不断右移与1进行与位运算,结果为1则位数为1
极客时间_算法训练营(代码实现汇总) 对极客大学算法训练营的题目做一个分类,方便后续查看。 第01课丨数据结构与算法总览 数据结构脑图 文档: 链接:数据结构脑图 和 算法脑图.note 算法脑图 自己画的脑图:(感觉有些凌乱,之后会逐步进行补充,完善,整理) 链接:数据结构和算法脑图.note 其中的一些分支,之前有画一些小型分类的脑图: 数据结构基础脑图:数据结构基础脑图.note 树 的 脑图:树的脑图.note 排序算法脑图:排序算法脑图.note 第02课丨训练准备和复杂度分析 •如何理解算法时间复杂度的表示法 第03课丨数 阅读详情

相关推荐

Spark MLlib模型训练—回归系列算法

GBTRegressor 和 RandomForestRegressor 的一般用法。其中,setLabelCol 与 setFeaturesCol 分别用于指定模型的预测标的与特征向量。而 setMaxDepth 与 setMaxIter/setNumTrees 分别用于设置模型的超参数,也即最大树深与最大迭代次数(决策树的数量),从而避免模型出现过拟合的情况。

2401_84052244的博客 3437

冲刺2024CSP-J第二轮一等奖(专题训练)

第九章 表达式求值专题。第四章 枚举算法专题。第五章 贪心算法专题。第七章 动态规划专题。第十章 其他算法专题。

lan_in的博客 2306

利用红外图像数据集FLIR Thermal Starter训练yolov5目标检测算法

Yolov5代码:https://github.com/ultralytics/yolov5 1、创建虚拟环境 conda create -n yolo python=3.6 source activate yolo 解压yolov5-master,并进入文件夹 安装需要的各种库 pip install -r requirements.txt 2、数据集制作

qq_40199447的博客 7306

算法训练之位运算

位运算题目练习

2401_82924480的博客 980

ER-NeRF对话数字人模型训练与部署

数字人也称为Digital Human或Meta Human,是运用数字技术创造出来的、与人类形象接近的数字化人物形象。应用包括但不限于直播、软件制作、教育、科研等领域。目前数字人模型效果最好的是ER-NeRF,其借鉴了nerf体渲染的思路,在输入维度上添加了音频特征,通过音频来影响渲染效果(控制嘴型)。即:给一段某人说话的视频,再给定一段音频,经过该模型后处理后,可将原视频的嘴型与音频保持一致。ER-NeRF的部署教程网上的教程虽然很多,但不是很全面,经过一番折腾,终于把算法跑起来了。

不会代码的小林 2785

【任何电机可使用的七段式s曲线-----包括matlab代码和simulink仿真】

S形加加速(T1)→>匀加速(T2)→减加速(T3)→>匀速(T4 )>加减速(T5)>匀减速(T6)-→>减减速(T7)

weixin_44312889的博客 6309

ubuntu18.04基于darknet训练YOLOv3目标检测神经网络模型

在ubuntu18.04中使用darknet框架训练YOLOv3目标检测神经网络模型

qq_43260922的博客 3010

从Unitree B2W到四足机器人:用Isaac Lab构建强化学习奖励函数的5个实战技巧

本文分享了在Isaac Lab仿真环境中,为Unitree B2W等四足机器人设计强化学习奖励函数的5个核心实战技巧。内容涵盖奖励函数的结构化组合、轮腿混合机器人的适配策略、课程学习的动态调整、域随机化增强鲁棒性以及高效的调试可视化方法,旨在帮助开发者构建更稳定、高效的机器人运动策略。

lg888的博客 1065

机器学习(2)-- KNN算法之手写数字识别

本篇介绍了如何使用KNN算法进行手写数字识别:训练模型:收集数据 – 读取图片数据 – 转化灰度图 – 处理图像 – 装进array数组 – 调整数据结构 – 分配标签 – 训练模型测试模型:评估性能 – 识别问题 – 优化和改进测试数据:查看实用性。

m0_74896766的博客 2832

GitHub 新手使用手册

理论说太多容易忘,来实践实践吧。

2501_90226046的博客 1053

快速入门:使用 SQL Server Management Studio (SSMS) 连接和查询 SQL Server 实例

开始使用 SQL Server Management Studio (SSMS) 连接到 SQL Server 实例并运行一些 Transact-SQL (T-SQL) 命令。本文介绍如何连接和查询实例SQL Server。有关 Azure SQL,请参阅连接。若要使用,请参阅连接和查询。若要详细了解如何SQL Server Management Studio,请参阅其他。......

m0_72938729的博客 5728

使用Tensor Flow进行MNIST手写数字识别训练

新手必读:使用 TensorFlow 中的 CNN 模型对 MNIST 手写数字数据集进行训练,得到的预测结果几乎达到了 100% 的准确率。

weixin_60359250的博客 2491

【Oracle】Oracle rman工具使用(真的细)

Oracle RMAN(Recovery Manager)是Oracle数据库备份和恢复的官方工具,它提供的备份和恢复功能非常强大和可靠。RMAN可以备份整个数据库或特定表空间、数据文件、控制文件和归档日志,同时还可以进行增量备份和增量恢复。RMAN还提供了诸如备份验证、备份优化、备份复制、备份集管理、恢复操作、自动备份、自动恢复等高级功能。它使用的备份和恢复格式是Oracle通用的备份集(Backup Set),这使得备份和恢复非常灵活和高效。

tttzzzqqq2018的博客 8501

“kuangbin带你飞”专题计划——专题一:简单搜索

kuangbin带你飞 1.难以提升emmmm。试着埋头搞专题,看能不能提升效率。 2.顺便当是复习了蓝桥杯了。 专题一:简单搜索 1.POJ-1321-棋盘问题 标签:暴力,搜索 题解:直接暴力,注意不要重复搜索 代码:我自己看的话点题目的链接就好了。粘贴在这里太繁琐,就没弄了。 2. ...

I_have_a_world的博客 476

第16课:动手实战中文句法依存分析

句法分析是自然语言处理(NLP)中的关键技术之一,其基本任务是确定句子的句法结构或者句子中词汇之间的依存关系。主要包括两方面的内容:一是确定语言的语法体系,即对语言中合法句子的语法结构给予形式化的定义;另一方面是句法分析技术,即根据给定的语法体系,自动推导出句子的句法结构,分析句子所包含的句法单位和这些句法单位之间的关系。 句法分析被用在很多场景中,比如搜索引擎用户日志分析和关键词识别,比如信息抽...

春华秋实 2435

软考「系统规划与管理师(第2版)」抱佛脚|案例分析预测

规划类(系统/数据/云)+ 服务过程找错改进 + 风险应急终止三大块各备一套成熟模板,术语统一按第2版新教材口径,案例分析 45 分线的希望就大很多。

软件行业技术文化交流。 71

数字人解决方案——ER-NeRF实时对话数字人模型训练与项目部署

ER-NeRF是基于NeRF用于生成数字人的方法,可以达到实时生成的效果。具体来说,为了提高动态头部重建的准确性,ER-NeRF引入了一种紧凑且表达丰富的基于NeRF的三平面哈希表示法,通过三个平面哈希编码器剪枝空的空间区域。对于语音音频,ER-NeRF提出了一个区域关注模块,通过注意机制生成区域感知的条件特征。与现有方法不同,它们使用基于MLP的编码器隐式学习跨模态关系不同,注意机制建立了音频特征和空间区域之间的明确连接,以捕获本地动作的先验知识。

知来者逆的博客 2万+

财务惊呼“不可能”!Python 自动识别 PDF 发票,数据秒级录入系统

电子发票(原生 PDF):这种最爽,文字是可以选中的。我们用 PyPDF2 直接提取文本,速度快,准确率 100%。 纸质扫描/拍照发票:这种是图片。必须上 OCR(光学字符识别)。我们要用百度开源的 PaddleOCR,这是目前中文识别效果最好的开源库之一,吊打早已过气的 Tesseract。

BUG猿的博客 1024

《机器学习》KNN算法搭配OpenCV训练模型、识别图片 No.2

KNN算法搭配OpenCV可以用于各种图像处理和计算机视觉任务,通过训练模型和预测图像,可以实现对图像的分类、识别、检测和分割等操作。这种组合可以应用于许多领域,包括人脸识别、目标检测、图像处理、医学图像分析等。

wx_AHao1004Y的博客 2130

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

手写数字识别从训练到部署全流程详解——Pytorch深度学习网络搭建与模型训练

在这里为了方便大家了解与入门深度学习开发,我以最简单的手写数字识别,通过Pytorch框架对LeNet-5网络进行构建与模型训练,,对Pytorch框架的使用与训练的全流程做一个详细的记录说明

best2012power的博客 2627

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

04-05组合问题_算法训练

经典编程算法

u012897654的专栏 1052

算法训练营 Day25 - 回溯算法part04

491.递增子序列给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。这题根据模板解决,continue的判定条件很重要。删除了依赖排序的,改用了来记录当前层级使用过的数字。46.全排列给定一个 没有重复 数字的序列,返回其所有可能的全排列。之前的题目(组合、子集)讲究的是“”,所以需要startidx。而全排列讲究的是“”,所以startidx,每次都要从头遍历。

2301_80733560的博客 747

算法入坑训练

算法入坑 自我刷题

mrbone9的博客 598

【算法打卡day36(2026-04-02 周四)】DFS专项训练3

本文摘要: 郑龙浩在2026年4月1日的算法打卡中完成了两道DFS专项训练题。第一题是洛谷P1088火星人问题,要求对给定排列进行M次字典序递增操作。作者通过分析发现可以直接使用C++的next_permutation函数实现,避免了手动编写DFS的复杂性。第二题是4×4数独游戏,需要满足行列和2×2子块不重复的条件。作者采用DFS回溯算法,逐步填充空白格子并验证条件,当所有格子填完时输出解。两题都体现了DFS在排列组合问题中的应用,第二题还结合了回溯思想解决约束满足问题。 (字数:149)

仟墨(郑龙浩)的博客 438

代码随想录算法训练营day04之字符串

​344.反转字符串、541.反转字符串||、卡码网54.替换数字、151.翻转字符串里的单词、卡码网55.右旋字符串、28.找出字符串中第一个匹配项的下标、459.重复的子字符串 ​

2301_79918816的博客 1353
上一篇: 【算法专题训练】03、比特位计数
下一篇: 【算法专题训练】05、最大单词长度乘积
Tim_10
博客等级 码龄2年 162粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值