Last active
January 5, 2018 09:24
-
-
Save guoyoujin/5be993d3bfc62efca61713023fffe33d to your computer and use it in GitHub Desktop.
关于物品叠加问题的思维方法
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
假设有一个九宫格表,格子里面有各种物品,有的格子上是空的,有的格子上的物品是同一种物品,只是数量不一,当你把格子的物品移动到别的格子上的时候,你该怎么做? | |
下面是代码逻辑的顺序,仅供参考 | |
理想思路算法逻辑 | |
1.如果目标格子上为空,则直接覆盖目标格子,并删除移动格子数据 | |
2.如果种类相同,直接让目标格子数量加上移动格子的数量,并清空移动的格子上的数据 | |
3.如果种类不相同,则互换格子上的数据即可 | |
上面这种情况在正常情况下是完全没有问题,但是当移动格子和目标格子是同一个格子的时候你会发现,他是满足条件2的,这时候奇迹发生了,物品数量翻倍了,老天,假如一直这么移动的话,那不是逆天了。 | |
正确做法应该是下面这种,当然这也只是我想到的一种问题,如果你也碰到这类问题,可以告知 | |
1.如果被移动和目标格子是同一个格子,则不作处理(注意此处尤为重要) | |
2.如果目标格子上为空,则直接覆盖目标格子,并删除移动格子数据 | |
3.如果种类相同,直接让目标格子数量加上移动格子的数量,并清空移动的格子上的数据 | |
4.如果种类不相同,则互换格子上的数据即可 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment