2660. 保龄球游戏的获胜者 --力扣 --JAVA

简介: 给你两个下标从 0 开始的整数数组 player1 和 player2 ,分别表示玩家 1 和玩家 2 击中的瓶数。保龄球比赛由 n 轮组成,每轮的瓶数恰好为 10 。假设玩家在第 i 轮中击中 xi 个瓶子。玩家第 i 轮的价值为:如果玩家在该轮的前两轮的任何一轮中击中了 10 个瓶子,则为 2xi 。否则,为 xi 。玩家的得分是其 n 轮价值的总和。返回如果玩家 1 的得分高于玩家 2 的得分,则为 1 ;如果玩家 2 的得分高于玩家 1 的得分,则为 2 ;如果平局,则为 0 。

 题目

给你两个下标从 0 开始的整数数组 player1player2 ,分别表示玩家 1 和玩家 2 击中的瓶数。

保龄球比赛由 n 轮组成,每轮的瓶数恰好为 10

假设玩家在第 i 轮中击中 xi 个瓶子。玩家第 i 轮的价值为:

    • 如果玩家在该轮的前两轮的任何一轮中击中了 10 个瓶子,则为 2xi
    • 否则,为 xi

    玩家的得分是其 n 轮价值的总和。

    返回

      • 如果玩家 1 的得分高于玩家 2 的得分,则为 1
      • 如果玩家 2 的得分高于玩家 1 的得分,则为 2
      • 如果平局,则为 0

      解题思路

        1. 通过List存储上两个数据;
        2. 遍历player1统计玩家一的分数;
        3. 遍历player2统计玩家二的分数;
        4. 两者相减,大于0返回1,小于0返回2,等于0返回0;

        代码展示

        class Solution {
            public int isWinner(int[] player1, int[] player2) {
                List<Integer> data = new ArrayList<>();
                int sum = 0;
                for(int num : player1){
                    if(data.contains(10)){
                        sum += num * 2;
                    } else {
                        sum += num;
                    }
                    if(data.size() == 2){
                        data.remove(0);
                    }
                    data.add(num);
                }
                data = new ArrayList<>();
                for(int num : player2){
                    if(data.contains(10)){
                        sum -= num * 2;
                    } else {
                        sum -= num;
                    }
                    if(data.size() == 2){
                        data.remove(0);
                    }
                    data.add(num);
                }
                if(sum > 0){
                    return 1;
                } else if(sum < 0){
                    return 2;
                } else {
                    return 0;
                }
            }
        }

        image.gif


        目录
        相关文章
        |
        6天前
        |
        Java
        Java猜数字游戏
        Java猜数字游戏
        19 2
        |
        6天前
        |
        Java Android开发
        基于Java的坦克大战游戏的设计与实现
        基于Java的坦克大战游戏的设计与实现
        16 0
        |
        6天前
        |
        算法 Java C语言
        C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
        C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
        |
        6天前
        |
        网络协议 Ubuntu Java
        如何使用MCSM搭建我的世界Java版服务器并实现远程联机游戏
        如何使用MCSM搭建我的世界Java版服务器并实现远程联机游戏
        42 0
        |
        6天前
        |
        Java
        手把手教你用java OOP实现猜拳游戏!好玩有用!
        手把手教你用java OOP实现猜拳游戏!好玩有用!
        20 3
        手把手教你用java OOP实现猜拳游戏!好玩有用!
        |
        6天前
        |
        JavaScript Java 测试技术
        基于Java的游戏虚拟道具交易网站的设计与实现(源码+lw+部署文档+讲解等)
        基于Java的游戏虚拟道具交易网站的设计与实现(源码+lw+部署文档+讲解等)
        31 0
        |
        6天前
        |
        网络协议 Java Windows
        打造个人的Minecraft服务器:Java+cpolar实现我的世界联机游戏
        打造个人的Minecraft服务器:Java+cpolar实现我的世界联机游戏
        129 0
        |
        6天前
        |
        算法
        【力扣】55.跳跃游戏
        【力扣】55.跳跃游戏
        |
        6天前
        |
        JavaScript Java 测试技术
        基于Java的游戏商城的设计与实现(源码+lw+部署文档+讲解等)
        基于Java的游戏商城的设计与实现(源码+lw+部署文档+讲解等)
        32 2
        |
        6天前
        |
        JavaScript Java 测试技术
        基于Java的游戏资源管理系统的设计与实现(源码+lw+部署文档+讲解等)
        基于Java的游戏资源管理系统的设计与实现(源码+lw+部署文档+讲解等)
        27 0

        热门文章

        最新文章