给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。

示例 1:

输入: [1,2,0]
输出: 3

示例 2:

输入: [3,4,-1,1]
输出: 2

示例 3:

输入: [7,8,9,11,12]
输出: 1

提示:

你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。

思路:将数值与下标产生联系,将nums[i]放到索引为nums[i]-1的位置,需要注意超出数组len的值与非正数不做处理直接跳过,最后遍历判断数值是否在正确的位置即可

class Solution {
public:int firstMissingPositive(vector<int>& nums) {int N = nums.size();for(int i=0;i<N;){//确定nums[i]的值对应的下标不越界,同时排除num[i]本身位置正确或者nums[i]应该放入的位置nums[i]-1原本就是nums[i](如[1,1])if(nums[i]>0&&nums[i]<=N&&nums[i]!=nums[nums[i]-1]){//换位置之后需要继续判断换过来的值是否在对的位置上,因此不能i++;int index = nums[i];//nums[i] = nums[index -1];nums[index -1]=index;}else{i++;}}for(int i=0;i<N;i++){if(nums[i]!=i+1){return i+1;}}return N+1;}
};

缺失的第一个正数—leetcode41相关推荐

  1. LeetCode--41.缺失的第一个正数(C)

    缺失的第一个正数(C) 1. 题目描述 2. 题目分析 3. C语言实现 3.1 申请额外空间实现 3.2 原数组实现 1. 题目描述 难度:困难 2. 题目分析 这道题本质上是很简单的,但是加上了这 ...

  2. Leetcode 40组合总数(回溯)Ⅱ41缺失的第一个正数42接雨水

    维护公众号:bigsai ,回复进群加入打卡,回复bigsai分享一些学习资源! 上周第一次 LeetCode 36有效的数独&37解数独(八皇后问题) 上周第二次 LeetCode 38外观 ...

  3. 41. 缺失的第一个正数 golang

    41. 缺失的第一个正数 给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3 ...

  4. Java实现 LeetCode 41 缺失的第一个正数

    41. 缺失的第一个正数 给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: ...

  5. Leetcode算法Java全解答--41. 缺失的第一个正数

    Leetcode算法Java全解答–41. 缺失的第一个正数 文章目录 Leetcode算法Java全解答--41. 缺失的第一个正数 题目 想法 结果 总结 代码 我的答案 大佬们的答案 测试用例 ...

  6. 41. First Missing Positive 缺失的第一个正数

    Title 给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [ ...

  7. 努力前端【LeetCode-10】448. 找到所有数组中消失的数字 442. 数组中重复的数据(中等) 41. 缺失的第一个正数(困难) [鸽笼原理,数组,Map,类似No.645]

    文章目录 题目描述-448 一.哈希Map 二.空间复杂度的优化--鸽笼原理 三.总结 题目描述-442 一.还是hashMap 二.继续鸽笼原理 题目描述-41 一.基础方案 二.数组模拟Map 题 ...

  8. Leetcode--41. 缺失的第一个正数

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11 ...

  9. leetcode41 缺失的第一个正数

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11 ...

最新文章

  1. 1677: [Usaco2005 Jan]Sumsets 求和
  2. oracle 关联出现重复数据,ORACLE 分页查询出现重复记录的解决办法
  3. bzoj1013球形空间
  4. 导出.txt / .pdf / .xls
  5. 【Linux】一步一步学Linux——whoami命令(96)
  6. 【推荐】 女人愁嫁时代终于来临
  7. java静态变量重复new_Java非静态成员变量之死循环(详解)
  8. 【LeetCode】Remove Nth Node From End of List
  9. 跨境商家为什么要建自己的独立站?
  10. 使用 v-cloak 防止页面加载时出现 vuejs 的变量名
  11. 【学术杂谈】博士毕业都去哪儿了,谈谈学术的这条路该如何走
  12. 仿 微信飞机大战项目
  13. wifi信道12为啥没人用_为什么我的无线路由器没有WIFI信道设置
  14. ios微信浏览器扫码进入页面加载完成失效
  15. 同态加密 bootstrapping自举算法
  16. linux系统网络老掉线,Linux使用ADSL上网时经常掉线
  17. 《搜索和推荐中的深度匹配》——1.5 近期进展
  18. Laravel Eloquent If Record Exists
  19. 这几个UP主真的是宝藏,快来看看有没有你认识的
  20. java编程cpu选i5还是i7,i5处理器和i7哪个好_i5和i7怎么选择-系统城

热门文章

  1. 怎样分组教学计算机学生才有兴趣,学生计算机论文,关于如何激发职业中专学生学习计算机的兴趣相关参考文献资料-免费论文范文...
  2. 开关和灯泡的对应关系
  3. 转载--html显示当前时间
  4. Linux shell去除字符串中所有空格
  5. HDU 1814 Peaceful Commission / HIT 1917 Peaceful Commission /CJOJ 1288 和平委员会(2-sat模板题)...
  6. Data Warehouse Hardware - DW硬件需求计算
  7. day12_oracle hint——SQL优化过程中常见Oracle中HINT的30个用法
  8. Android调试相关的技术常识
  9. 设计模式-单件模式(Singleton pattern)
  10. 349. Intersection of Two Arrays 两个数组的交集