8月19日华为笔试题

8月19日华为笔试题(回忆,意思应该差不多,可能个人表述会有点不清。。。)

第一题

给你N行M列的人,他们是一个方阵。左上角是(0,0),右下角是(n-1, m-1),最外圈的人顺时针报数,当他们报的数个位是7并且十位是奇数,就选出来。外圈报完了内圈接着报,一直到所有人都报完,问最后选出来的是哪些。

要求是10<=n,m<=1000,如果输入不合法,那么就是返回空数组

输入

10 10

输出

[[7,9],[1,1],[8,2],[7,5],[4,4]]

第二题

给你N个节点,然后输入他们所在的高度,问最后的二叉树可以有几种,结果可能很大,对 取模

0<N<=1000,每个节点的所在高度小于N,大于等于0

输入

4 
1 0 2 2

输出

2

hint

        x
      /
    x
  /   \
 x     x

或者

 x
   \
    x
  /   \
 x     x

第三题

现在有一个已经落下来了一些的俄罗斯方块,我们用一个字符串表示,分别代表每个位置上已经落了多少块了。比如2202,就是下图

现在,有一个新的俄罗斯方块要掉下来,它的描述也是类似的,

例如121,就是下图

掉下来的块,一定保证是上底对齐的,并且不会出现下图这种情况

然后众所周知,落下来以后,如果一行没有间断的话,那么这一行就能消掉了,上面的那些就会往下落。

掉下来的块不能旋转,可以左右平移,但不能超出边界,让你最后没有被消除的行数尽可能小,问你这个值是多大。

输入

2202
2

输出

0

hint

如果你不把2放在原本的0处的话,那么现在的未消行数就是4

#笔试题目##华为#
全部评论
大佬,全搞出来了?
点赞 回复 分享
发布于 2020-08-19 21:30
我去,看到你强调边界条件我终于知道第一题我为啥没全过了!!我忘记加上输入非法的考虑情况了!!我去&hellip;&hellip;
点赞 回复 分享
发布于 2020-08-19 21:55
a了1道,第二道30%,
点赞 回复 分享
发布于 2020-08-19 22:01
第二题有个边界吧,所有数字大于等于1,小于等于N-1
点赞 回复 分享
发布于 2020-08-19 22:03
不懂什么算法,暴力求解第一题,本地编译通过
点赞 回复 分享
发布于 2020-08-20 00:16
请问第三题 121 为啥不是上面一个下面3个
点赞 回复 分享
发布于 2020-08-20 11:26
楼主可以分享一下第二题的代码吗?第二题的大数处理不知道怎么办。
点赞 回复 分享
发布于 2020-08-20 16:39
第二题什么意思啊。。。没读懂,求解释
点赞 回复 分享
发布于 2020-08-20 20:56
楼主有第二题和第三题的代码吗
点赞 回复 分享
发布于 2020-09-08 19:27

相关推荐

11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
5 40 评论
分享
牛客网
牛客企业服务