美团笔试第一题就超时??

题目是n个长方形,我用go写的,一开始超时后改用hash缓存后还超时,真一点没招了,牛友们有遇到相同情况吗

这是我的代码:
package main

import "fmt"

func niceput(rectangles [][]int, height int) int {
    var ans int
    for _, rectangle := range rectangles {
        if rectangle[0] <= height && rectangle[1] <= height {
            ans += min(rectangle[0], rectangle[1])
        } else {
            if rectangle[0] > height {
                ans += rectangle[0]
            } else {
                ans += rectangle[1]
            }
        }
    }
    return ans
}

func min(a, b int) int {
    if a <= b {
        return a
    }
    return b
}

func main() {
    firstmap := make(map[int]map[int]int)

    var n, m int
    fmt.Scan(&n, &m)
    ans := 0
    for i := 0; i < n; i++ {
        recs := [][]int{}
        var x, y int
        fmt.Scan(&x, &y)
        if x < y {
            x, y = y, x
        }
        //如果map中有结果,直接调用,不用再计算一次
        if v, ok := firstmap[x][y]; ok {
            ans += v
            continue
        }

        recs = append(recs, []int{x, y})
        curput := niceput(recs, m)
        ans += curput
        if _, ok := firstmap[x]; !ok {
            firstmap[x] = make(map[int]int)
        }
        firstmap[x][y] = curput
        //把结果记录在map中
    }
    fmt.Println(ans)
}#牛客AI配图神器#
全部评论
A 了这题,用 python 写的。如果没有超过最大高度,就用最小的当底,如果超过了最大高度,就用最大的当底
2 回复 分享
发布于 08-23 11:58 福建
其实是输入有问题,用scanner输入就不超时了
1 回复 分享
发布于 08-23 23:08 上海
C语言写的,用指针结构体+枚举,2ms左右
点赞 回复 分享
发布于 08-23 23:20 广东
一样超时,一开始过20%,后面调了调变量定义位置这些的(没改逻辑),过90,不知道怎么往上调了😓
点赞 回复 分享
发布于 08-23 12:15 上海
我int改long就从0到100了,cpp
点赞 回复 分享
发布于 08-23 11:55 江苏
感觉有点问题,这个一直0通过,明明很简单
点赞 回复 分享
发布于 08-23 11:47 北京

相关推荐

08-19 19:57
石河子大学 C++
企鹅百度字节的孝子:为啥本科只有两年啊
校招求职吐槽
点赞 评论 收藏
分享
小美的简单构造没看明白
投递美团等公司10个岗位
点赞 评论 收藏
分享
08-23 06:00
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务