美团 20240817 笔试

单选10道
编程三道:
    1.求gcd(m,n)是否为素数(100%)期间好像改了数据样例,测试样例过不了,一提交反而过了
    2.使数组极差最小(100%)
    3.小美和小团对数组进行最大最小操作求sum(0)这个死活过不了
不知道能不能进面
全部评论
我第二题和第三题都是测试用例能通过,但是用例通过为0
2 回复 分享
发布于 08-17 20:33 广东
一样
1 回复 分享
发布于 08-17 20:32 陕西
天翼云科技有限公司
校招火热招聘中
官网直投
一样
点赞 回复 分享
发布于 08-17 20:34 上海
第三题为什么啊😭😭一直爆0,感觉自己思路没啥问题啊,起码给我骗点分吧
点赞 回复 分享
发布于 08-17 20:36 陕西
为啥我的算法是5个题啊
点赞 回复 分享
发布于 08-18 13:44 北京

相关推荐

package xhsimport ("fmt""math")func max(a, b int) int {if a > b {return a}return b}func dfs(node int, parent int, colors []rune, adjList map[int][]int, blackCount []int) int {count := 0if colors[node-1] == 'B' {count = 1}for _, child := range adjList[node] {if child == parent {continue}count += dfs(child, node, colors, adjList, blackCount)}blackCount[node] = countreturn count}func findMaxBlackNodes(n int, colors string, edges [][]int) int {adjList := make(map[int][]int)blackCount := make([]int, n+1)// 建立邻接表for _, edge := range edges {u, v := edge[0], edge[1]adjList[u] = append(adjList[u], v)adjList[v] = append(adjList[v], u)}// 颜色转换为字符数组colorRunes := []rune(colors)// 从根节点开始进行DFS,计算黑色节点数量dfs(1, -1, colorRunes, adjList, blackCount)// 找到删除一个红色节点后的最大黑色节点数maxBlack := math.MinInt32for i := 1; i <= n; i++ {for _, node := range adjList[i] {if colorRunes[node-1] == 'R' {maxBlack = max(maxBlack, blackCount[i]-blackCount[node])}}}return maxBlack}func XHS9_1_3main() {n := 10colors := "RRBBBBBBBB"edges := [][]int{{1, 2},{1, 3},{1, 4},{1, 5},{1, 7},{2, 8},{4, 6},{4, 10},{6, 9},}result := findMaxBlackNodes(n, colors, edges)fmt.Println(result) // 输出 7}
查看2道真题和解析 投递小红书等公司10个岗位
点赞 评论 收藏
分享
2 2 评论
分享
牛客网
牛客企业服务