传说是腾讯面试题

0 1 2 3 4 5 6 7 8 9
6 2 1 0 0 0 1 0 0 0
观察可知用定量简单分析可以求
并且下排加起来肯定是10
假设有10个0 显然不满足
假设有9个0 显然不满足
假设有8个0 显然不满足
假设有7个0 在8个位置里有7个是0,所以剩下一个只能是2为1,和7个0冲突
假设有6个0 在8个位置里有6个是0,剩下两个可以由上排得出,6+1+1=8,只差一个2了,所以在上排的2标上一个1,所以1的位置就为2了
假设有5个0, 在8个位置里,除去1号位置还有2个位置不为0,有5+1+1=7,还差3,而这两个位置要等于3,也就是从2、3里面选两个数不为0,但显然与5个0冲突
假设只有4个0,在7个位置里,有3个不为0,4+1+1=6,那么剩下的从1、2、3里选,数字不够,冲突
依次类推后面都是错误的

接下来就是说这个题目的条件特点了

条件1:下排加起来肯定为10


条件2:由条件1可知,数据里面肯定有0,还不只1个


条件3:由条件2分析可知,每出现一个0,那么必有2个数据受到影响,所以10个数字里面,不为0的数字大于2,所以10、9、8全部排除


条件4:由条件1、2、3可以得出,下排加起来为10,那么只需要从0-7这些数字分析,也就是说,0肯定大于等于3,那么设0有n个,n>=3,但n>=3这个范围太大了,我们可以缩小一点:
如果n为3那么0-7都不为0,显然不成立,n为4,0-7里多了一个数字不为0,但也肯定不成立,所以观察可以知道,不为0的数字,不能超过7/2的上界,而且要大于7/2的下界(为什么呢?用反证法就可以得知,7/2的上界为4,我们假设n为5的时候是成立的,那么就是0加到4,恰好等于0,可是5的位置是1,显然大于等于5都是不成立的,而大于7/2的下界是怎么回事呢?由条件2和3和前面的推论不就可以得出来了吗?当n>=7的时候,0、1、7-9的位置都是肯定有数字的,但1,除全场只有自己为1时能为1,其他情况不可能为1,可以知道1的位置肯定是大于等于2的)

由上面几个条件就可以推出
0的位置为6,6的位置为1,1的位置为2,2的位置为1。

这道题我不是用后面这种分析思路写出来的,我先是有上面所述的定量分析,10个0,9个0,这样枚举,才把答案给写出来的。后面这种分析思路,是我在把答案弄出来后,我总感觉是有某些关系的,我就逐一分析,逐一写条件,写出了这道题的思路分析,如果有什么说错的地方,或者有什么不理解的地方可以留言。

猜你喜欢

转载自www.cnblogs.com/pppyyyzzz/p/12461731.html