leetcode_599

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

Golang:

思路:用了两个map,时间复杂度还行,但空间复杂度可太高了,第一个map存放长度更长的列表,第二个map去存储索引最小的字符串集合。代码还是有些复杂的,而且空间复杂度太低了,不推荐。

代码如下:

func findRestaurant(list1 []string, list2 []string) []string {
    if len(list1)==0||len(list2)==0{
        return nil
    }
    minsum:=-1
    dic:=make(map[string]int)
    minress:=make(map[int][]string)
    var longl,shortl []string
    if len(list1)>len(list2) {
        longl,shortl=list1,list2
    }else {
        longl,shortl=list2,list1
    }
    for k,v:=range longl{
        dic[v]=k
    }
    for k,v:=range shortl{
        if t,ok:=dic[v];ok {
            if minsum==-1 {
                minsum=k+t
                minress[minsum]=append(minress[minsum],v)
            }else{
                if k+t<=minsum {
                    minsum=k+t
                    minress[minsum]=append(minress[minsum],v)
                }
            }
        }
    }
    return minress[minsum]
}

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

本文来自:简书

感谢作者:淳属虚构

查看原文:leetcode_599

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

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