博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
听说是阿里笔试题
阅读量:7081 次
发布时间:2019-06-28

本文共 1711 字,大约阅读时间需要 5 分钟。

  今天在csdn论坛里面看到一个贴子说一了一个阿里的面试题,题目大概意思是这样

 

1.一个3X3(就像3阶魔方一样)的格子,现在你在正面的左上角顶点上,要走到背面的右下角(这里应该还是从前向后看的右

边)顶点上.
2.一次可以走任意格数,但是只能从前向后,从左向右,从上向下.
3.一共有多少种走法.
如下图.

  最初的思路.

  刚看到题我的思路就是走到正面的每一个格子有多少种走法,然后再去计算从正面的不同格子到背面格子走法.但是最后发现不同的格子走到终点格子路径都不同.而且出发不仅仅从正面开始,也可以从上面,左面,最后这个也不是乘以3的关系,因为左面,上面到终点格子上的走的方式也不相同.一下就陷入混乱中,不能有一定的规则.

  我看着图,一边想,并且找到一条路径,最边沿的路径,先向右走三格,然后再向下走三格,最后再向前走三格,这样可以到达终点.其它路径还有很多,那有什么规律呢?就是向右,向下,向前都是走的三格,这里只要总和是三格即可,比如你先向右走一格,再向下走三格,再向前走三格,再向右走两格也是可以到的.也就是说只要向右走的总和为3,向下走的总和为3,向前走的总和为3就可以了.那么我们再来验证一下,看有没有可能出现不是3格的情况,我们多弯几次,但是发现题中只能按前向后,左向右,上向下走,所以只有为3的情况才可以.

那么现在就是把三种3格的不同组合进来就可以了.现在我们看从左向右3格的情况有多少种.也就是3的拆分,如下

1 1 1 //3可分成1和1和1 表示 一次走1格,三次
1 2 //3可分成1和2 表示 一次走1格,一次走2格
2 1
3

接下来就是有趣点的事情况了,也就是把从上向下和从前向后组合进去,并且这两种也是要总和为3格,这里我们不急,一步一步的来.后面两种拆分方法也是同上面4种情况.下面是组合情况

1.当从左向右为 1 1 1的情况下,这里我们用排列组合的方式,也就是从4个位置中插入后面两种走法情况,要求达到都是3格.
1.1 当其中一步走的是从上到下的情况,当然另外的就是从前到后了.结果为
C(4,1)*1*1
1.2 当其中两步走的是从上到下的情况
C(4,2)*2*2 (这里乘以2表示有两步走的有两种情况,走1格和走2格,走2格和走1格)
1.3 当其中三步走的是上到下的情况
C(4,3)*1*1

2.当为1 2的情况,同上面分析得出

C(3,1)*1*2
C(3,2)*2*1

3.当为2 1,同上

4.当为3的时候
C(2,1)*1*1

所以最后结为,把几种情况加起来

1.4+24+4=32
2.6+6=12
3.6+6=12
4.2

最后结果为58,(貌似我回贴计算出误,当时可能算错了,当时52),这个题目我不知道具体的答案,如有发现有误的地方可以回复交流.


 

这里是修改部分,昨天晚上在逛超市的时候,不知怎么突然觉得上面的方法还有情况没有列举完,上面的情况只是当从左向右的情况全部在排列中间的情况,因为我选空是n+1的方式,所以这里还应该考虑从左往右在前,从左往右在后的情况.那么后面结果还有

C(3,1)*1*2 

C(2,1)*1*1

C(2,1)*1*1

C(1,1)*1*1

所以结果应该再加上 (6+2+2+1)*2=22,那最后结果应该58+22=80,如果还有问题后面再修改吧.

 [2014-07-02修改]


 这里我又要修改了一下,因为前面的全部错了,前面思考了这么多,最后发现简单的方法,而且之前的3格应该是2格才对,也就是说从左向右走两格,从上向下走两格,再前向后走两格就到终点了.

所以可以理解成6个位置放三种颜色的球,每种球两个,那么结果应该是 C(6,2)*C(4,2)就ok了

所以结果应该是15*6=90

[2014-07-03修改]


 

  高潮后面总是结束,总结一下,其实这种没有什么总结的.

  主要是那个插入的各种情况的分析,其实如果这个要写代码来计算可能比分析还要复杂点,好像那个题目就是叫填个空,也就是写程序来实现.

 

转载于:https://www.cnblogs.com/gw2010/p/3818820.html

你可能感兴趣的文章
使用Selenium来抓取动态加载的页面
查看>>
设计模式实战应用之五:工厂方法模式
查看>>
XML - 十分钟了解XML结构以及DOM和SAX解析方式
查看>>
IIS、Asp.net 编译时的临时文件路径
查看>>
Android 热修复 Tinker接入及源代码浅析
查看>>
selenium测试(Java)--操作cookie(十七)
查看>>
测试技能图谱skill-map
查看>>
Java EE: XML Schemas for Java EE Deployment Descriptors(Java Web的web.xml头web-app标签上的XML模式)...
查看>>
【.net 深呼吸】实时获取计算结果
查看>>
第六章 访问权限控制
查看>>
python学习:简单的wc命令实现
查看>>
dns记录类型(转)
查看>>
Spring介绍
查看>>
在 docker 容器中捕获信号
查看>>
在分布式系统里看CAP定理
查看>>
Vmware Workstation _linux yum 仓库搭建
查看>>
Mysql高效插入/更新数据
查看>>
前端模块化,AMD与CMD的区别
查看>>
影子寄存器(shadow register)
查看>>
无法获得VMCI 驱动程序的版本: 句柄无效。
查看>>