网易雷火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道真题和解析
查看10道真题和解析