题目如下

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

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

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

解题代码

int firstMissingPositive(vector<int> &nums)
{int len = nums.size(); //8for (int i = 0; i < len; ++i){while(nums[i] > 0 && nums[i] <= len && nums[nums[i]-1]!=nums[i]){swap(nums[i], nums[nums[i] - 1]);}}for (int i = 0; i < len; ++i){if (nums[i] != i+1)return i + 1;}return len + 1;
}
class Solution {public:int firstMissingPositive(vector<int>& nums){int i = 0;int n = nums.size();if (n == 0) return 1;while (i < n){/*nums[i]=i+1;是核心思想,将数组中的元素尽可能的实现nums[i]=i+1;能帮助我们找到第一个缺失的正整数。nums[i]>=1 和 nums[i]<=n :因为数组中有些值大于n,所以不能实现 nums[i]=i+1;所以我们不管这些值。nums[nums[i]-1]!= nums[i]:若将此表达式去掉的话,那么nums[nums[i-1]]=nums[i]情况下则会使程序陷入死循环。*/if (nums[i] != i + 1 && nums[i] >= 1 && nums[i] <= n && nums[nums[i] - 1] != nums[i]){swap(nums[i], nums[nums[i] - 1]);}//若在swap函数后面++i 则会有可能使交换后的nums[i]的值失去归位机会(nums[x]=x+1;),最后导致结果错误else{++i;}}for (int j = 0; j < n; ++j){if (nums[j] != j + 1){return j + 1;}}return n + 1;}
};

958-缺失的第一个整数相关推荐

  1. leetcode 41.缺失的第一个整数

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 如何表示数组所有数都不等于一个数_力扣刷题那些事儿(3)-缺失的第一个正整数(41)...

    问题描述 官网题目地址: 力扣​leetcode-cn.com 问题分析 典型的 "看起来很简单" 的题目,但再仔细看发现要求时间复杂度和空间复杂度要求就知道自己错了. 简单描述就 ...

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

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

最新文章

  1. Leangoo团队敏捷开发实现过程
  2. 线程撕裂者安装linux,Linux FreeBSD 12.1跑分测试:在AMD Ryzen线程撕裂者3970X上快得刷新认知...
  3. java 线程安全_Java创建线程安全的方法
  4. 转:PHP 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
  5. [蓝桥杯][算法提高VIP]Sharing Chocolate(状压dp记忆化搜索)
  6. C语言程序设计孙家啸第一版,广东年月自考各专业课程使用教材.doc
  7. 九齐NY8B072A单片机使用笔记(一)TIMER0定时器
  8. 从Gartner报告,看中国数据库崛起
  9. vuex 在非组件中调用 mutations 方法
  10. iOS:×××送(二)----pem证书的生成
  11. Android控件——TextView与EditText
  12. java多线程问题(代码示例)
  13. 【背包DP】【2018.9.20普及组模拟】T3(WOJ 3975)保护羊村
  14. 三、GAMIT解算之分步处理
  15. chatbot_Chatbot开发简介
  16. 靶场环境的搭建(2020年6月15日学习笔记)
  17. 电大计算机科学与技术课程,大学计算机科学与技术专业(本科)专业课程设置及教学管理...
  18. 极光推送收费标准_《天涯明月刀OL腾讯旗下 北极光工作室的 厄运魔咒:“做什么凉什么”》...
  19. HTML入门二(列表,表格与表单)
  20. 基于JavaGUI实现的订餐管理系统

热门文章

  1. 什么是前端(web front end)?
  2. 《设计团队协作权威指南》—第2章2.2节设计师的最佳心态
  3. 关于浙政钉水印的问题
  4. 计算机毕业设计Java办公自动化管理系统(源码+系统+mysql数据库+lw文档)
  5. Java并发之Semaphore源码解析
  6. 踩坑ImageMagick将ios图片文件HEIC格式转jpg/png等
  7. Qt源码编译configure配置参数
  8. java中的移位操作详解
  9. python plot 图像大小_设置matplotlib图像的figsize和dpi
  10. ffmpeg转码,输入视频帧率与输出帧率不相等时,出现丢帧问题