小黑代码
class Solution:
def firstMissingPositive(self, nums: List[int]) -> int:
# 数组长度
n = len(nums)
nums = set(nums)
for i in range(1, n+2):
if i not in nums:
return i
return -1
哈希表法(经典)
class Solution:
def firstMissingPositive(self, nums: List[int]) -> int:
# 数组长度
n = len(nums)
# 将<=0的数字剔除(变为n+1)
for i in range(n):
if nums[i] <= 0:
nums[i] = n+1
# 将<=n的数字的索引变为负数(剔除)
for i in range(n):
if abs(nums[i]) <= n:
nums[abs(nums[i])-1] = -abs(nums[abs(nums[i])-1])
# 未被修改的位置
for i in range(n):
if nums[i] > 0:
return i+1
return n+1
置换法
class Solution:
def firstMissingPositive(self, nums: List[int]) -> int:
# 数组长度
n = len(nums)
# 开始遍历数组,对[1,n]的数字放到正确的位置
for i in range(n):
while 0 < nums[i] <= n and nums[i] != nums[nums[i]-1]:
temp = nums[i]
nums[i] = nums[nums[i]-1]
nums[temp-1] = temp
for i in range(n):
if i+1 != nums[i]:
return i+1
return n+1
小黑生活
晚上跟尚香出去遛弯,喝喜茶,去原来考研去过的星巴克转转,吃臭豆腐
紫光园早餐
出去买个喜茶美式咖啡
午餐干饭
晚餐干饭
瑜伽团课:颂钵音乐会
遇到了个“慢热的女生”
晚间跑步
食堂早餐
js逆向尝试
午餐干饭
午间咖啡
瑜伽团课
晚餐干饭
颂钵冥想课
跑步里程突破12700公里
晚间跑步
夜宵
早餐干饭
爬虫任务
午餐干饭
订购去成都的机票,准备跑双遗马拉松
午间咖啡
晚餐干饭
准备跑仰山十攀
仰山十攀越野
早餐干饭
彩排舞狮
午餐干饭
内观流瑜伽预约
午间咖啡
晚餐干饭
初次体验内观流瑜伽,狼狈不堪
瑜伽课后宇飞牛肉面
早餐干饭
午餐干饭
午间咖啡
中午排练团拜会
电脑莫名其妙白屏了
我同学面试成功,开心哈哈哈
寻找一起面试奇安信的同学
一起吃必胜客
收到了舞狮子的照片
路上险些让交警罚了
南二环
来杯霸王别姬
大年三十先约个考试
瑜伽团课预约
在家刷题
早餐干饭
继续彩排
午餐干饭
午后咖啡
瑜伽课预约
烤冷面和炸鸡
c++新书到了
晚间跑步
想给同事介绍对象
早餐干饭
单位表彰大会
午餐干饭
午间咖啡
瑜伽课预约
舞狮子送的礼物
晚餐干饭
第二天就要演出了
牛奶面包
夜宵喝酒吃串
早餐干饭
收到了单位的新年祝福
化妆准备表演
演出顺利结束
午餐干饭(忘记拍了)
中午喝霸王
隔壁组长姐姐请客喜茶
瑜伽预约
晚餐麦当劳
团课后拍照留念
晚间跑步
小红书的内观流那一条笔记的评论
尝试一下早起
紫光园早餐干饭
当年的蓝鲸自习室薅羊毛
怀念当年的麻辣烫
午餐麻辣烫干饭
午后霸王
南门涮肉排队直接放弃
买了新手机
一起吃潮汕牛肉火锅
团拜会照片分享
跟尚香买了一样的手机
买手机送了一个耳机
去咖啡厅学c++
重新预约科目二
11年的老同学聚会