猜数字游戏
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比较少的累加是保证不会出现列子一的情况,虽然有点浪费时间了,但是却是个好办法,有时候一个方向走不动的时候,转换一个思路会很难,所有要经常积累,这也是现在经常看别人代码的好处呐,就像这道题,单纯从两个序列入手已经走不通了,在所有可能出现的数字是有限个的情况下,可以换成这个想法,虽然不太好想。。。。
正确序列:1,2,3,4
猜测序列:1,1,1,1
我选择用字符串保存正确的,然后如果对应上就把它变成字母,下一次就不会算他了,可是如果这样子:
正确:1,2,3,4
错误:2,3,3,4
错误的3算了,正确却没有算,这样显然不符合题意,于是我就卡住了,想不通怎么做,flag也想过,就是无法处理
又一次看了答案
答案先计算了一遍正确的,然后遍历所有数字(1~9) 每个数字都分别在正确猜测数组里面出现了多少次,每次取最少的记在count 里面,累加,最后猜错位置的就是count减去猜对位置的数目
刚看到这个思路时候还不是很能理解,于是找了几个尝试,每次选择count比较少的累加是保证不会出现列子一的情况,虽然有点浪费时间了,但是却是个好办法,有时候一个方向走不动的时候,转换一个思路会很难,所有要经常积累,这也是现在经常看别人代码的好处呐,就像这道题,单纯从两个序列入手已经走不通了,在所有可能出现的数字是有限个的情况下,可以换成这个想法,虽然不太好想。。。。
相关文章推荐
- SQL Server ->> 间接实现COUNT(DISTINCT XXX) OVER(PARTITION BY YYY)
- underscorejs-min学习
- Wet Shark and Flowers(思维)
- 内积层和全连接层是一样的
- (二) shiro入门 :输出 hello world
- LeetCode Majority Element
- maven项目强制转换到jdk1.7 1.8
- 深入分析JavaWeb 5 -- Servlet开发
- sql语句优化
- JAVA泛型应用-获取容器运行时的泛型Class对象
- Android UI 优化(1)——使用HierarchyViewer工具
- Eclipse快捷键
- 渗透工具sqlmap学习
- ios创建画笔的样例(双笔画效果)
- iOS中的webView加载HTML
- underscorejs-max学习
- poll案例
- HDU 1850 Nim-Sum思想总结、
- UVAlive 3263 That Nice Euler Circuit(欧拉定理)
- Oracle 统计一个字段中某字符出现的次数