极客战记 --沙漠 金色幻影解法

计数法 求 数组内数值的唯一值

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都没有更新,造成死循环,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值