头条笔试研发凉凉

第一题,广度遍历

def func(***):
    if len(***) < 1:
        return 0
    res = 0
    order = [
        [0, 1], [1, 0], [-1, 0], [0, -1]
    ]
    ***_len = len(***)

    p = 2
    while True:
        flag = False
        for i in range(***_len):
            for j in range(len(***[0])):
                if ***[i][j] == p:
                    for ord in order:
                        x = ord[0] + i
                        y = ord[1] + j
                        if x < 0 or y < 0 or x >= ***_len or y >= len(***[0]):
                            continue
                        if ***[x][y] == 1:
                            flag = True
                            ***[x][y] = p+1
        p += 1
        if flag:
            res += 1
        else:
            break
    for i in range(***_len):
        for j in range(len(***[0])):
            if ***[i][j] == 1:
                return -1
    return res

if __name__ == "__main__":
    *** = []
    while True:
        row = input().strip()
        if len(row) < 1:
            break
        ***.append(list(map(int, row.split(' '))))
    print(func(***))

自测用例如下:

[] 预期 0, 返回 0
[1] 预期 -1, 放回-1
[0] 预期 0, 返回 0
[1 0] 预期 -1 返回 -1
[
    [1],
    [2],
    [0]
] 预期 1 返回 1
[
  [1],
] 预期 -1, 返回 -1
[
    [1, 0],
    [2, 0],
    [1, 0]
] 预期 1 返回 1
[
    [1, 1],
    [1, 0],
    [0 ,2]
] 预期 -1 返回 -1
[
    [1, 2, 0],
    [1, 0, 1],
    [0, 0, 2]
] 预期 2 返回2

明明自测都过了, 提交一直0%, 有没有大佬知道还有啥情况需要测

第三题

class Solution {
public:
    int func(vector<int>& ***) {
        int res = 0;
        for (int i = ***.size() - 1; i >= 0; --i)
        {
            int t = res + ***[i];
            res = (t >> 1) + (t & 1);
        }
        return res;
    }
}

第四题,暴力深度遍历,50%
总结,凉凉

#笔试题目#
全部评论
第三题握手
点赞 回复
分享
发布于 2019-04-14 12:22
第四题可参考 https://www.nowcoder.com/discuss/178303?type=0&order=0&pos=18&page=0
点赞 回复
分享
发布于 2019-04-14 22:30
秋招专场
校招火热招聘中
官网直投

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务