首页 > 其他分享 >leetcode-599. 两个列表的最小索引总和

leetcode-599. 两个列表的最小索引总和

时间:2023-01-01 17:22:26浏览次数:61  
标签:string v1 599 ret leetcode 索引 k1 len indexSum

599. 两个列表的最小索引总和 - 力扣(Leetcode)

刚开始的思路是搞两个map,但是性能比较差,只需要构建一个map然后遍历第二个list即可

[!添加后可以过滤一些肯定不符合条件的]

if k1 > indexSum {
	continue
}
func findRestaurant(list1 []string, list2 []string) []string {
    if len(list1) == 0 || len(list2) == 0 {
        return []string{}
    }

    map1 := make(map[string]int, len(list1))
    // map2 := make(map[string]int, len(list2))

    for k, v := range list1 {
        map1[v] = k
    }

    indexSum := len(list1) + len(list2)
    ret := []string{}
    for k1, v1 := range list2 {
        // 加上这个条件可以省略很多判断
        if k1 > indexSum {
            continue
        }

        if k2, ok := map1[v1]; ok {
            if k1+k2 < indexSum {
                ret = []string{v1}
                indexSum = k1+k2
            } else if k1 + k2 == indexSum {
                ret = append(ret, v1)
            }
        }
    }

    // for k, v := range list2 {
    //     map2[v] = k
    // }

    // indexSum := len(list1) + len(list2)
    // ret := []string{}

    // for k1, v1 := range map1 {
    //     if v2, ok := map2[k1]; ok {
    //         if v1 + v2 < indexSum {
    //             ret = []string{k1}
    //             indexSum = v1+v2
    //         } else if v1+v2 == indexSum {
    //             ret = append(ret, k1)
    //         }
    //     }
    // }

    return ret
}

标签:string,v1,599,ret,leetcode,索引,k1,len,indexSum
From: https://www.cnblogs.com/wudanyang/p/17018297.html

相关文章

  • leetcode-598. 范围求和 II
    598.范围求和II-力扣(Leetcode)Go语言没有针对int的最小值、最大值以及比较算法,可以有一套,不然每次都需要写这个min函数funcmaxCount(mint,nint,ops[][]int)int......
  • leetcode-595. 大的国家
    595.大的国家-力扣(Leetcode)两种方法,一个是or一个是union,union会快一点#WriteyourMySQLquerystatementbelow#selectname,population,areafromWorld#wh......
  • leetcode-594. 最长和谐子序列
    594.最长和谐子序列-力扣(Leetcode)双指针,后面那个边界条件让我调了好几分钟funcfindLHS(nums[]int)int{sort.Ints(nums)left,right,maxLen:=0,0,......
  • leetcode-590. N 叉树的后序遍历
    590.N叉树的后序遍历-力扣(Leetcode)可以参考[[leetcode-589.N叉树的前序遍历]],代码差不多/***DefinitionforaNode.*typeNodestruct{*Valint......
  • leetcode-589. N 叉树的前序遍历
    589.N叉树的前序遍历-力扣(Leetcode)Go语言的切片操作方便性还不错/***DefinitionforaNode.*typeNodestruct{*Valint*Children[]*Node*......
  • [leetcode每日一题]1.1
    ​​2351.第一个出现两次的字母​​难度简单给你一个由小写英文字母组成的字符串 ​​s​​ ,请你找出并返回第一个出现 两次 的字母。注意:如果 ​​a​​ 的 第二......
  • leetcode-586. 订单最多的客户
    586.订单最多的客户-力扣(Leetcode)#WriteyourMySQLquerystatementbelowselectcustomer_numberfrom(selectcustomer_number,count(*)cntfromOrders......
  • leetcode-584. 寻找用户推荐人
    584.寻找用户推荐人-力扣(Leetcode)sql题,还是比较简单的#WriteyourMySQLquerystatementbelowselectnamefromcustomerwherereferee_id<>2orreferee_id......
  • 【排序】【数组】LeetCode 75. 颜色分类
    题目链接75.颜色分类思路题目要求按0、1、2的顺序排序,因为数量有限,所以通过两次遍历,分别将0和1交换到合适的位置,这样两次遍历之后,剩下的2就都在尾部了。代码classSol......
  • 【排序贪心】【字符串】LeetCode 179. 最大数
    题目链接179.最大数思路转自宫水三叶大佬的题解对于nums中的任意两个值a和b,我们无法直接从常规角度上确定其大小/先后关系。但我们可以根据「结果」来决定a和......