Array-T41. First Missing Positive

news/2024/11/28 5:44:58/

Problem:Given an unsorted integer array, find the smallest missing positive integer.

 

Note:

Your algorithm should run in O(n) time and uses constant extra space.

Solve:(复杂度为O(nlogn))

 

Thought:由于所给的列表为无序列表,且涉及最值问题,所以先对列表进行排序。设置一个变量来储存当前未出现的最小正整数。遍历列表即可找出缺少的最小正整数。

 

Solve :(复杂度为O(n))

class Solution(object):def firstMissingPositive(self, nums):""":type nums: List[int]:rtype: int"""length = len(nums)for i, num in enumerate(nums) :while (num <= length) and (num > 0) and (nums[num - 1] != num) :nums[num - 1], num = num, nums[num - 1]for i in range(length) :if nums[i] != (i + 1) :return i + 1return length + 1

Thought:将每一个在大小范围内的数放到对应的位置上,如数字4放在index为3的位置,跳过其他不在列表长度范围内的数。最后遍历一遍列表,第一个不符合的index+1为缺失的最小正整数。

(注意:数字范围为[1,n])

 

关于第二种解法的算法复杂度,由于遍历了两遍,所以至少为O(2n)。而交换的部分,最大交换次数的情况为所有的数均在列表长度内时,需要交换n次(每交换一次就至少有一个数在正确位置上)。总计为O(3n) = O(n)。

 

既然是用python,肯定会有的必要环节,下面是python的一行代码

class Solution(object):def firstMissingPositive(self, nums):""":type nums: List[int]:rtype: int"""return min(set(range(1, len(nums) + 2)) - set(nums))

 


http://www.ppmy.cn/news/374383.html

相关文章

T41:单词的翻转(Java)

t题目&#xff1a;牛客最近来了一个新员工Fish&#xff0c;每天早晨总是会拿着一本英文杂志&#xff0c;写些句子在本子上。同事Cat对Fish写的内容颇感兴趣&#xff0c;有一天他向Fish借来翻看&#xff0c;但却读不懂它的意思。例如&#xff0c;“student. a am I”。后来才意识…

剑指offer T41 数据流的中位数

中位数就是所有数值排序!!!之后位于中间的数值 既然要对所有元素进行排序&#xff0c;考虑使用自带排序的容器&#xff1a;然后TreeSet和TreeMap都不适合 那考虑使用堆来做 思想&#xff1a; 建立两个堆&#xff0c;一个大顶堆lowHeap&#xff0c;一个小顶堆 highHeap 其中大顶…

力扣LeetCode(二)T41-T80

文章目录 41.缺失的第一个正数42.接雨水43.字符串相乘44.通配符匹配45.跳跃游戏 II &#xff08;贪心&#xff09;46.全排列&#xff08;两种模板&#xff09;47.全排列 II&#xff08;序列不重模板&#xff09;48.旋转图像49. 字母异位词分组50.pow(x,n) &#xff08;快速幂&a…

T41 (i7 集显)安装黑苹果

主体参照http://bbs.pcbeta.com/forum.php?modviewthread&tid1566555 注意那个盘符一定要AF 转载于:https://www.cnblogs.com/souroot/p/4537504.html

剑指offer T41

#include <iostream> using namespace std; void printfcontinuesequence(int a,int b)//打印序列 {for(int ia;i<b;i)cout<<i<< ;cout<<endl; } void findcontinuesequence(int sum) //找序列 {if(sum<3)return;int small 1;int large 2;int …

【纯国产化AI处理器T41ZX-极低功耗,极速快启】

一、结构框图 二、 性能 2.1 CPU。 XBurst2频率范围为1.0GHz-1.4GHz。双核。IPS32 ISA R5的双问题、高性能和低功耗实现。MIPS32 ISA R5加Ingenic SIMD512 ISA。具有同时多线程&#xff08;SMT&#xff09;的双问题、超标量、超级流水线。32K LI D-cache32K LI I-cache&#xf…

T41安装WINDOWS2008驱动历险记

windows2008中文版本出来了&#xff0c;想安装试玩。我的本本是IBM T41 &#xff0c;没想到的是安装完后显卡与无线网卡死活也找不到。想了一切可能的方法&#xff0c;下载了所有VISTA版本可能的驱动却仍然安装不上。今天闲来无事准备死马当活马医&#xff0c;翻箱倒柜找出了X…

T41—支持电池版智能视频处理器

T41L智能视频处理器数据表 一、概述 T4IL是新一代专业智能视频应用处理器&#xff0c;适用于移动摄像机、安全调查、视频通话等视频设备。视频分析等。它集成了新一代4K分辨率的ISP和最新的H264/H265/PEG梳状视频压缩编码器&#xff0c;在高质量图像和低比特率方面领先业界&am…