每日一题之缺失的第一个正数
大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题这个月进度是数据结构,让大家练到各种各样的数据结构题目,熟悉数据结构的增删改查,一年以后,蜕变成为一个不一样的自己!📒博客首页:泡泡的首页🎉欢迎关注🔎点赞👍收藏⭐️留言📝❤️ :热爱C/C++与算法学习,云计算等,期待一起交流!🙏作者水平有限,如果发现错误,求告知,多谢!👻高校算法学习社区:https://
·
大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题这个月进度是数据结构,让大家练到各种各样的数据结构题目,熟悉数据结构的增删改查,一年以后,蜕变成为一个不一样的自己!
📒博客首页:泡泡的首页
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
❤️ :热爱C/C++与算法学习,云计算等,期待一起交流!
🙏作者水平有限,如果发现错误,求告知,多谢!
👻高校算法学习社区:https://bbs.csdn.net/forums/Suanfa
一起加入刷题内卷大军,还可以加入专属内卷群,里面福利多多大佬多多!
今日题目:缺失的第一个正数
题目难度:⭐️
题目涉及算法:排序,暴力枚举,二分,记忆化搜索,双指针,位运算,哈希表等
ps:有能力的小伙伴可以尝试优化自己的代码双百或者一题多解,这样能综合提升自己的算法能力
我选用的哈希表解题
执行用时: 132 ms
内存消耗: 31.1 MB
解题思路:
利用哈希表保存数组的全部值,如果是负数或者超值就不保存了,然后遍历判断!
#define MAX 500001
int hash[500001];
int firstMissingPositive(int* nums, int numsSize){
memset(hash,0,sizeof(hash));
for(int i=0;i<numsSize;i++)
{
if(nums[i]>0&&nums[i]<MAX)
{
hash[nums[i]]++;
}
}
for(int i=1;i<=numsSize;i++)
{
if(hash[i]==0)
{
return i;
}
}
return numsSize+1;
}
每日一题,有效内卷!
如果有用的话,还请给个点赞三连感谢!!!!
更多推荐
已为社区贡献2条内容
所有评论(0)