【每日算法Day 75】字节跳动面试题:手撕困难题,看过我Day 71的人都会做了!

简介: 给定一个未排序的整数数组,找出其中没有出现的最小的正整数。

题目链接


LeetCode 41. 缺失的第一个正数[1]

题目描述

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

示例1

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

示例2

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

示例3

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

说明:

  • 你的算法的时间复杂度应为image.png ,并且只能使用常数级别的空间。

题解


如果之前一直坚持看我题解的同学,应该前几天刚看过下面这道题:

【每日算法Day 71】面试官想考我这道位运算题,结果我给出了三种解法

韦阳的博客:【每日算法Day 71】面试官想考我这道位运算题,结果我给出了三种解法[2]

知乎专栏:【每日算法Day 71】面试官想考我这道位运算题,结果我给出了三种解法[3]


image.png

代码


c++

classSolution {
public:  
intfirstMissingPositive(vector<int>&nums) { 
intn=nums.size();  
nums.push_back(-1);  
for (inti=0; i<=n; ++i) {  
if (nums[i] <=0||nums[i] >n) {   
nums[i] =-1;  
            }    
        }    
for (inti=0; i<=n; ++i) {   
while (nums[i] !=-1&&i!=nums[i] &&nums[i] !=nums[nums[i]]) {  
swap(nums[i], nums[nums[i]]);    
            }        
if (nums[i] !=-1&&i!=nums[i]) {   
nums[i] =-1;  
            }  
        }     
for (inti=1; i<=n; ++i) {      
if (nums[i] ==-1) returni; 
        }      
returnn+1;    
    }
};

参考资料


[1]

LeetCode 41. 缺失的第一个正数: https://leetcode-cn.com/problems/first-missing-positive/

[2]

韦阳的博客:【每日算法Day 71】面试官想考我这道位运算题,结果我给出了三种解法: https://godweiyang.com/2020/03/16/leetcode-interview-17-19/

[3]

知乎专栏:【每日算法Day 71】面试官想考我这道位运算题,结果我给出了三种解法: https://zhuanlan.zhihu.com/p/113534188

image.png

作者简介:godweiyang知乎同名华东师范大学计算机系硕士在读,方向自然语言处理与深度学习喜欢与人分享技术与知识,期待与你的进一步交流~


相关文章
|
9月前
|
机器学习/深度学习 数据采集 算法
2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
|
9月前
|
IDE 开发工具 开发者
2024年最新5个提升生产效率的Python开发和配置的小技巧_python高级开发技巧,字节跳动面试必问
2024年最新5个提升生产效率的Python开发和配置的小技巧_python高级开发技巧,字节跳动面试必问
2024年最新5个提升生产效率的Python开发和配置的小技巧_python高级开发技巧,字节跳动面试必问
|
9月前
|
前端开发 程序员 开发工具
2024年最全0基础程序员如何快速进阶成为编程老司机?_码农速成(2),字节跳动面试攻略
2024年最全0基础程序员如何快速进阶成为编程老司机?_码农速成(2),字节跳动面试攻略
2024年最全0基础程序员如何快速进阶成为编程老司机?_码农速成(2),字节跳动面试攻略
|
9月前
|
机器学习/深度学习 数据采集 自然语言处理
2024年Python最新【python开发】并发编程(下),2024年最新字节跳动的面试流程
2024年Python最新【python开发】并发编程(下),2024年最新字节跳动的面试流程
2024年Python最新【python开发】并发编程(下),2024年最新字节跳动的面试流程
|
9月前
|
程序员 开发工具 Python
最全学Python有什么用?看完这些你肯定明白_学pysion的作用,2024年最新字节跳动面试严格吗
最全学Python有什么用?看完这些你肯定明白_学pysion的作用,2024年最新字节跳动面试严格吗
最全学Python有什么用?看完这些你肯定明白_学pysion的作用,2024年最新字节跳动面试严格吗
|
9月前
|
Python 计算机视觉
2024年Python最新利用python进行数学公式识别_python 识别图片中的数学公式,2024年最新字节跳动技术岗位面试
2024年Python最新利用python进行数学公式识别_python 识别图片中的数学公式,2024年最新字节跳动技术岗位面试
2024年Python最新利用python进行数学公式识别_python 识别图片中的数学公式,2024年最新字节跳动技术岗位面试
|
9月前
|
JavaScript 前端开发 Java
关于hello world,让我们用五十种编程语言来诠释!,字节跳动研发面试流程
关于hello world,让我们用五十种编程语言来诠释!,字节跳动研发面试流程
|
9月前
|
Oracle 关系型数据库 数据库
Oracle 部署及基础使用,字节跳动资深面试官亲述
Oracle 部署及基础使用,字节跳动资深面试官亲述
|
9月前
|
Android开发
Android Jetpack架构开发组件化应用实战,字节跳动+阿里+华为+腾讯等大厂Android面试题
Android Jetpack架构开发组件化应用实战,字节跳动+阿里+华为+腾讯等大厂Android面试题
|
9月前
|
Android开发
71,字节跳动历年校招Android面试真题解析
71,字节跳动历年校招Android面试真题解析

热门文章

最新文章