这就需要确定每个水果的index,第一次摆的时候还好,可以随便指定就好了,但是如果遇到更加复杂的需求,如:吃掉一个水果之后,后面所有的水果都要向前移动来补上被吃掉的空缺,如:吃掉梨,香蕉向前移动一次,变成 苹果、香蕉、空
这个过程假设是这么做的:先确定吃掉的是哪个位置eatIndex(即梨的index,是1),再通过eatIndex寻找后一个(afterIndex,即香蕉的index,2),再通过afterIndex找到这个位置上的水果,是香蕉……后面略。。如此复杂,一定是哪里不对。求大家在解决类似问题时的方法。
不知道我的表达是否清楚,第一次发帖,见谅。
6 个解决方案
#1
自挽,求回复
#2
感觉很像链表啊!可以试试用链表实现?
#3
如果要直接就取到它是第几个的话,那似乎不管如何都得维护它们的顺序了(每吃掉一个就刷新一次)
楼主有没有具体一点的需求呢?还是说,这个吃水果的例子就是楼主的需求?~
楼主有没有具体一点的需求呢?还是说,这个吃水果的例子就是楼主的需求?~
#4
需求是这样的,有一队士兵,他们如此排列ABCDE,他们在和对面的一队士兵死磕,顶在前面的A死了之后,BCDE就要向前移动补上这个空缺。
#5
忘了说了,因为有远程攻击,所以可能先死的不是A而是队列中间的某个,同样也需要后面的兄弟上前补缺
#6
你看这样可不可以:
1. 每个士兵都订阅一个消息:士兵死亡消息
2. 某个士兵死亡后,把自己所处位置设为”空“(总之意思就是代表这个位置没人了),然后发出死亡消息
3. 收到消息的士兵,如果不是死亡的那个,则进行判断,判断自己的前面是否是”空位“,是的话,就往前挪。自己原先的位置也设为”空“,如果挪了之后前面还有空位,继续挪。
订阅消息的顺序就按士兵的排列顺序就好了,这样可以避免在后面的士兵先收到消息
你觉得怎么样?~
1. 每个士兵都订阅一个消息:士兵死亡消息
2. 某个士兵死亡后,把自己所处位置设为”空“(总之意思就是代表这个位置没人了),然后发出死亡消息
3. 收到消息的士兵,如果不是死亡的那个,则进行判断,判断自己的前面是否是”空位“,是的话,就往前挪。自己原先的位置也设为”空“,如果挪了之后前面还有空位,继续挪。
订阅消息的顺序就按士兵的排列顺序就好了,这样可以避免在后面的士兵先收到消息
你觉得怎么样?~
#1
自挽,求回复
#2
感觉很像链表啊!可以试试用链表实现?
#3
如果要直接就取到它是第几个的话,那似乎不管如何都得维护它们的顺序了(每吃掉一个就刷新一次)
楼主有没有具体一点的需求呢?还是说,这个吃水果的例子就是楼主的需求?~
楼主有没有具体一点的需求呢?还是说,这个吃水果的例子就是楼主的需求?~
#4
需求是这样的,有一队士兵,他们如此排列ABCDE,他们在和对面的一队士兵死磕,顶在前面的A死了之后,BCDE就要向前移动补上这个空缺。
#5
忘了说了,因为有远程攻击,所以可能先死的不是A而是队列中间的某个,同样也需要后面的兄弟上前补缺
#6
你看这样可不可以:
1. 每个士兵都订阅一个消息:士兵死亡消息
2. 某个士兵死亡后,把自己所处位置设为”空“(总之意思就是代表这个位置没人了),然后发出死亡消息
3. 收到消息的士兵,如果不是死亡的那个,则进行判断,判断自己的前面是否是”空位“,是的话,就往前挪。自己原先的位置也设为”空“,如果挪了之后前面还有空位,继续挪。
订阅消息的顺序就按士兵的排列顺序就好了,这样可以避免在后面的士兵先收到消息
你觉得怎么样?~
1. 每个士兵都订阅一个消息:士兵死亡消息
2. 某个士兵死亡后,把自己所处位置设为”空“(总之意思就是代表这个位置没人了),然后发出死亡消息
3. 收到消息的士兵,如果不是死亡的那个,则进行判断,判断自己的前面是否是”空位“,是的话,就往前挪。自己原先的位置也设为”空“,如果挪了之后前面还有空位,继续挪。
订阅消息的顺序就按士兵的排列顺序就好了,这样可以避免在后面的士兵先收到消息
你觉得怎么样?~