leetcode_41

淳属虚构 · · 504 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Golang:

思路:这里补充个并查集实现,时间复杂度也是O(n),但空间复杂度会差很多,因为使用了哈希表。这题我陷入了个误区,忘记了使用题目给的数组空间是可以算作O(1)的,做的时候还在想,不用额外的空间,怎么可能呢?

代码如下:

func firstMissingPositive(nums []int) int {
    mp:=make(map[int]int)
    for i:=0;i<len(nums);i++{
        if nums[i]>0{
            if mp[nums[i]]==0{
                temp:=mp[nums[i]-1]+mp[nums[i]+1]+1
                mp[nums[i]-mp[nums[i]-1]],mp[nums[i]+mp[nums[i]+1]],mp[nums[i]]=temp,temp,temp
            }
        }
    }
    return 1+mp[1]
}

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:淳属虚构

查看原文:leetcode_41

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

504 次点击  
加入收藏 微博
下一篇:leetcode_30
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传