41. First Missing Positive
来源:互联网 发布:sql安装提示之前挂起 编辑:程序博客网 时间:2024/05/20 20:21
Given an unsorted integer array, find the first missing positive integer.
For example,
Given [1,2,0] return 3,
and [3,4,-1,1] return 2.
Your algorithm should run in O(n) time and uses constant space.
给定一个无序的整型数组,找到数组中第一个未出现的正整数。
要求算法的时间复杂度为O(n),空间复杂度为O(1)。
如果没有要求空间复杂度的话,这道题只需要利用unorder_map并遍历两次即可获得结果。
#include <unordered_map>#include "FirstMissingPositive.h"int FirstMissingPositive::firstMissingPositive1(vector<int>& nums){ unordered_map<int, bool> map; for (int i = 0; i < nums.size(); i++) { map[nums[i]] = true; } int k = 1; for (; k <= nums.size(); k++) { if (map.find(k) == map.end()) return k; } return k;}int FirstMissingPositive::firstMissingPositive2(vector<int>& nums){ for (int i = 0; i < nums.size(); i++) { //這裡要達到的效果是 nums[i] != nums[nums[i] - 1],即每個位置上的值為其序列值(如果有的話) //前兩個判斷是為了只處理正整數 while (nums[i] > 0 && nums[i] <= nums.size() && nums[i] != nums[nums[i] - 1]) { swap(nums[i], nums[nums[i] - 1]); } } for (int i = 0; i < nums.size(); i++) { if (nums[i] != i + 1) return i + 1; } return nums.size() + 1;}
阅读全文
0 0
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 41. First Missing Positive
- 学习笔记系列之Redis | 第一章 Redis简介与环境搭建
- 获取a标签的父元素
- 图形用户界面
- java操作hdfs,实现文件上传、下载以及查看当前文件夹下所有文件
- 编程之路小目标
- 41. First Missing Positive
- 分布式管理和集中式管理的优劣-----项目架构和配置分离
- 计算机核心概念 —— 服务
- Oracle 创建用户并分配角色
- LEETCODE3. Longest Substring Without Repeating Character
- 2017CCPC哈尔滨 F:Permutation(构造)
- 程序员不能错过的28份技术知识图谱,你的进阶路上必备
- LeetCode刷题记录2-求32位整数的反序
- 设计模式-策略模式(对象行为型)