您的位置:首页 > 其它

猜数字游戏

2016-02-01 10:25 274 查看
初次见到题目,觉得很简单,可是仔细敲代码时候却发现根本无法处理如下情况

正确序列:1,2,3,4

猜测序列:1,1,1,1

我选择用字符串保存正确的,然后如果对应上就把它变成字母,下一次就不会算他了,可是如果这样子:

正确:1,2,3,4

错误:2,3,3,4

错误的3算了,正确却没有算,这样显然不符合题意,于是我就卡住了,想不通怎么做,flag也想过,就是无法处理

又一次看了答案

答案先计算了一遍正确的,然后遍历所有数字(1~9) 每个数字都分别在正确猜测数组里面出现了多少次,每次取最少的记在count 里面,累加,最后猜错位置的就是count减去猜对位置的数目

刚看到这个思路时候还不是很能理解,于是找了几个尝试,每次选择count比较少的累加是保证不会出现列子一的情况,虽然有点浪费时间了,但是却是个好办法,有时候一个方向走不动的时候,转换一个思路会很难,所有要经常积累,这也是现在经常看别人代码的好处呐,就像这道题,单纯从两个序列入手已经走不通了,在所有可能出现的数字是有限个的情况下,可以换成这个想法,虽然不太好想。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: