美团笔试

小美的简单构造没看明白

全部评论
把输入的x转为20位的2进制,然后结果数组里除了x以外,就是x二进制版本里为0的位依次取1. 举个例子,假如x为0110,那结果是{0110,0111,1110},这是个简单的例子,题目里需要考虑20位
1 回复 分享
发布于 08-23 11:34 四川
题本身不难,难的是读懂题目,我读了20分钟才知道他想让我干嘛,我是直接找x二进制位为0的地方,然后按顺序变为1就好了
点赞 回复 分享
发布于 08-23 11:46 上海
为啥in.nextlong()最后一个输入死循环啊,想法对了结果输入不让我输,人麻了
点赞 回复 分享
发布于 08-23 11:39 北京
我也没看懂,只通过百分之四
点赞 回复 分享
发布于 08-23 11:32 重庆
通过率4 第三题人心态崩了 没写完 就差最后一点
点赞 回复 分享
发布于 08-23 11:30 四川
我也是这个,感觉按照要求写完了,但是通过率0
点赞 回复 分享
发布于 08-23 11:27 湖北

相关推荐

不愿透露姓名的神秘牛友
08-09 12:05
点赞 评论 收藏
分享
题目是n个长方形,我用go写的,一开始超时后改用hash缓存后还超时,真一点没招了,牛友们有遇到相同情况吗这是我的代码:package mainimport "fmt"func niceput(rectangles [][]int, height int) int {var ans intfor _, 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 intfmt.Scan(&n, &m)ans := 0for i := 0; i < n; i++ {recs := [][]int{}var x, y intfmt.Scan(&x, &y)if x < y {x, y = y, x}//如果map中有结果,直接调用,不用再计算一次if v, ok := firstmap[x][y]; ok {ans += vcontinue}recs = append(recs, []int{x, y})curput := niceput(recs, m)ans += curputif _, ok := firstmap[x]; !ok {firstmap[x] = make(map[int]int)}firstmap[x][y] = curput//把结果记录在map中}fmt.Println(ans)}
kimariyb:A 了这题,用 python 写的。如果没有超过最大高度,就用最小的当底,如果超过了最大高度,就用最大的当底
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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