LeetCode | 41. First Missing Positive

本文探讨了在未排序整数数组中寻找最小缺失正整数的问题,提供了一个运行时间为O(n)且使用常数额外空间的算法实现,并通过三个示例展示了其有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

题目:

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

Example 1:

Input: [1,2,0]
Output: 3

Example 2:

Input: [3,4,-1,1]
Output: 2

Example 3:

Input: [7,8,9,11,12]
Output: 1

Note:

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

 

代码:

class Solution {
public:
    int firstMissingPositive(vector<int>& nums) {
        set<int> numset;
		for (int i = 0; i<nums.size(); i++)
		{
			if (nums[i] > 0)
				numset.insert(nums[i]);
		}
		if (numset.size() < 1)
			return 1;
		int pre = *(numset.begin());
        if (pre > 1)
			return 1;
		for (set<int>::iterator iter = numset.begin(); iter != numset.end(); iter++)
		{
			if (*iter - pre > 1)
				return pre + 1;
			pre = *iter;
		}
		return pre + 1;
    }
};

 

题外话:

转眼一个月就过去了,开始四月份的第一篇博客时,我还很有信心地认为本月肯定会轻松完成任务,没想到两篇卡在中间还没写完。现在听着Mystery of Love在码字,即将迎来放空的假期。最近收获还挺多的,比较深刻的是关于自信心肌肉的训练。

这个概念第一次是在上周参加的一个分享会上接触到,说人的自信心也需要锻炼,就像肌肉一样,定期定量地锻炼它,它才会融入我们的气质里。我们要勇于承认自己的卓越(remarkable)。巧合的是,刚才看了一期TED,主题居然和这个出奇地相似。这期TED名为“与大脑合作”,感兴趣的朋友可以去搜搜看。大意和自信心肌肉类似,如果我们想做什么事情,需要让大脑清晰地意识到我们的意愿,要具体到细节。然后是将愉悦感与达成目标相关联,将停滞不前与不开心相关联,大脑会自动地配合我们的意愿。最后,需要跳出舒适区,让熟悉的事情变得不熟悉,让不熟悉的事情变得熟悉。关于这部分,我的理解是跳出舒适区,开始行动吧。跳出对自己熟悉的定义,例如“做不到、好难、远不如自己所想……”;练习“我可以、我想、如果做到我很开心:)”。

好吧,一不留神开始写鸡汤,不过对于经常不自觉“谦虚”的我们,也许练习自信不失为一种好的选择。毕竟,相信自己是快乐的一部分。

 

最后,预祝大家五一劳动节快乐^________________________________________^!

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值