美文网首页刷爆力扣
【36】魔塔游戏

【36】魔塔游戏

作者: 公孙剑人 | 来源:发表于2021-10-07 09:59 被阅读0次

如题:

LCP 30. 魔塔游戏

思路

参考力扣的大佬的思路,使用贪心算法解决

  1. 如果每个房间的血量加起来小于0,那么无解,返回-1即可;
  2. 我们使用先进先出的队列,来保存导致血量减小的房间(值);
    a). 当blood加当前层小于0,则表示当前层需要移动到最后,step加一,同时还原原血量;
  3. 遍历nums完成,则step为需要移动的房间数。

代码

    public int magicTower(int[] nums) {
        int sum = 0;
        for (int temp : nums) {
            sum += temp;
        }
        if (sum < 0) {
            return -1;
        }
        int step = 0;
        long blood = 0;
        Queue<Integer> queue = new PriorityQueue<>();
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] < 0) {
                queue.offer(nums[i]);
                if (blood + nums[i] < 0) {
                    // 移动次数加1
                    step ++;
                    // 血量还原
                    blood -= queue.poll();
                }
            }
            // 执行到这,表示血量不会小于0,直接累加即可
            blood += nums[i];
        }
        return step;
    }

相关文章

  • 【36】魔塔游戏

    如题: LCP 30. 魔塔游戏[https://leetcode-cn.com/problems/p0NxJO/...

  • 魔塔

    上帝给了每个玩家进入“魔塔”(游戏)的钥匙 勇士和公主就在那里 倘若没人打开这局游戏,他们也在那里 游戏的最后,定...

  • 呢理解看看来咯饿了

    空间卡里魔塔

  • 动态规划算法帮我通关了“魔塔”

    读完本文,可以去力扣解决如下题目:174.地下城游戏(Hard) 「魔塔」是一款经典的地牢类游戏,碰怪物要掉血,吃...

  • 魔塔

    1 公主又被抓了。 魔王下了战书:想要救你的公主殿下,就来50层魔塔吧! “上次是恶龙,这次又是什么魔王!姑奶奶你...

  • 魔塔

    本书主要讲了一个10岁的男孩无所谓十分瘦弱,还有些斜视,在学校经常被同学们欺负。他偶然间爬上一座被废弃许...

  • 魔塔

    好的幻想小说都是成长故事,孩子阅读幻想小说,就是一次想象力的远行。在彭懿的成长幻想小说中,幻想与现实交织在一起,幽...

  • 开朗

    莫有 魔塔 咯莫

  • 魔塔bug玩家记录

    又想起来魔塔50层这个游戏,下载下来写一份记录吧。 开启新游戏之后按照正常顺序,拿上钥匙出来直接进第3层。 进入如...

  • 魔塔攻击与防御的选择

    今天在网吧下片的时候重温了一下初中时候玩的经典小游戏魔塔21层版,发现小时候还是玩的不够细。 游戏的模式是这样的:...

网友评论

    本文标题:【36】魔塔游戏

    本文链接:https://www.haomeiwen.com/subject/lgwanltx.html