网易雷火2022秋招笔试8.14
第一题:从0号宝箱开始,每开一个宝箱有几个钥匙(对应编号的钥匙能开对应的宝箱),问能不能开掉所有的宝箱。
package main
import (
"encoding/json"
"fmt"
)
func main() {
var s string
fmt.Scan(&s)
arr := make([][]int, 0)
err := json.Unmarshal([]byte(s), &arr)
if err != nil {
fmt.Println("false")
return
}
keys := make([]int, 0)
opened := make(map[int]bool, 0)
for i := 0; i < len(arr[0]); i++ {
keys = append(keys, arr[0][i])
}
opened[0] = true
for len(keys) > 0 {
first := keys[0]
keys = keys[1:]
opened[first] = true
for i := 0; i < len(arr[first]); i++ {
if !opened[arr[first][i]] {
keys = append(keys, arr[first][i])
}
}
}
if len(opened) == len(arr) {
fmt.Println("true")
return
}
fmt.Println("false")
}
第二题:问一亿以内包含25的数字的个数(这题我取巧了,正解应该是每个区间找规律)
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
n := 0
fmt.Scan(&n)
ans := 0
if n >= 99999925 {
fmt.Println(6850999)
return
}
for i := 0; i <= n; i++ {
s := strconv.Itoa(i)
if strings.Contains(s, "25") {
ans++
}
}
fmt.Println(ans)
}
第三题:没看题目,有点恶心,我直接返回3,过了33%
#网易雷火笔试##网易##笔试#
查看10道真题和解析