计数法 求 数组内数值的唯一值
while True:
array = []
coins = hero.findItems()
for i in range(len(coins)):
array.append(coins[i].value)
for i in range(len(coins)):
if array.count(coins[i].value) == 1:
hero.move(coins[i].pos)
计数法二,返回值 求 数组内数值的唯一值
def Coin(coins):
for coin1 in coins:
count = 0
for coin2 in coins:
if coin1.value == coin2.value:
count = count + 1
if count == 1:
return coin1
while True:
coins = hero.findItems()
if coins and len(coins):
# The following code will help you debug:
coin = Coin(coins)
hero.say(coin.value);
hero.moveXY(coin.pos.x, coin.pos.y);
# When ready, delete the previous code and solve.
while True:
coins = hero.findItems()
if coins and len(coins):
# 下面的代码将帮助您调试:
i = 0
while i <len(coins):
coin = coins[i]
j=0
fc=[]
while j<len(coins):
if i==j:
j+=1
continue
co = coins[j]
fc.append(co.value)
j+=1
if coin.value not in fc:
hero.move(coin.pos)
break
i+=1
三种解法都正确,我做的是最后一种解法,开始一直报死循环,主要在第二个j循环的理解上有盲区,if i==j: 直接continue,没有让j变化,while循环的时候 ,continue直接跳到比较条件,i和j都没有更新,造成死循环,