如何用C++找出第一个正整数
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要介绍"如何用C++找出第一个正整数",在日常操作中,相信很多人在如何用C++找出第一个正整数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何用C++找出第
千家信息网最后更新 2025年01月17日如何用C++找出第一个正整数
这篇文章主要介绍"如何用C++找出第一个正整数",在日常操作中,相信很多人在如何用C++找出第一个正整数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何用C++找出第一个正整数"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1. 题目描述
给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。
2. 解题思路
/*解题思路:1、第一个正数为:大于0的整数,如1、2、3、4、5...2、将数字放到正确的位置: nums[i]:存储在下标为nums[i]-1位置,不符合该规则的跳过3、遍历数组返回第一个: nums[i]!=i+1的数,为缺失的第一个正数,否则返回numsSize+1*/
3. 测试结果
4. 解法1
int firstMissingPositive(int* nums, int numsSize) { //mid临时变量用于数据交换 int mid = 0; //遍历nums数组 for (int i = 0; i < numsSize; i++) { //将 nums[i]:存储在下标为nums[i]-1位置,不符合该规则的跳过 while ((nums[i] > 0) && (nums[i] < numsSize + 1) && (nums[i] != nums[nums[i] - 1])) { mid = nums[i]; nums[i] = nums[mid - 1]; nums[mid - 1] = mid; } } //设置返回值变量res,如果所有值位置都正确,则返回numsSize+1 int res = numsSize + 1; //遍历数组,返回第一个位置不正确的数 for (int i = 0; i < numsSize; i++) { if (nums[i] != i + 1) { res = i + 1; break; } } return res;}
到此,关于"如何用C++找出第一个正整数"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
整数
C++
位置
数组
学习
示例
输入
输出
变量
思路
更多
正数
帮助
复杂
实用
最小
接下来
复杂度
常数
数字
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库数据精度考虑
万方数据库收录的类型
网络安全邀请函范文
服务器上抓包
软件开发方法模式
网络安全保障工作隐患排查
wps数据库文件格式
金证股份服务器
高中信息技术教资数据库建立
从大学生视角谈网络安全的论文
国家网络安全部投诉
网络技术学习要求
互联网大会 振芯科技
云安软件开发定制
怒炉和狮心哪个服务器好
软件开发建模过程
文件路径是服务器中的绝对路径
增加数据文件到数据库
巨星引擎网络技术
微信打不开怎么拿数据库
网络技术职级
GEO的数据库中的
网络安全会议报道范文
选择联机数据库的标准首先是
网络安全法59条最多罚款
金属服务器的目标
军队网络安全十严禁图片
苏州工业软件开发正规平台
网络安全主要威胁形式
服务器出口ip地址如何查询