LeetCode——2660. 保龄球游戏的获胜者

通过万岁!!!

  • 题目比较简单,就是给你两个数组,大小为n,分别表示n次投掷保龄球的得分。然后让你按照某种规则计算出最后的总得分,从而判断胜负。计算的规则就是如果出现了10分,那么接下来两轮的分数可以进行*2的操作。
  • 思路:遍历两个数组就好了,然后记录一下10分的位置,每次判断如果当前位置与10分的位置的具体小于2等于2,则这次的比分*2后再加到sum中。并且需要判断是不是要更新下标的位置。但是我写的代码空间复杂度比较高,我进行了优化,取消sum的定义,而是直接放在数组的第0个元素中,但是并没有啥提升。
  • 技巧:数组的遍历

java代码

java 复制代码
class Solution {
    public int isWinner(int[] player1, int[] player2) {
        int tenIdx1 = player1[0] == 10 ? 0 : -3;// 距离最开始要超过2
        int tenIdx2 = player2[0] == 10 ? 0 : -3;
        for (int i = 1; i < player1.length; i++) {
            player1[0] += i - tenIdx1 <= 2 ? 2 * player1[i] : player1[i];
            player2[0] += i - tenIdx2 <= 2 ? 2 * player2[i] : player2[i];
            tenIdx1 = player1[i] == 10 ? i : tenIdx1;
            tenIdx2 = player2[i] == 10 ? i : tenIdx2;
        }
        return player1[0] > player2[0] ? 1 : player1[0] == player2[0] ? 0 : 2;
    }
}
  • 总结:题目不是很难,但是主要是怎么优化一下空间复杂度。
相关推荐
愿你天黑有灯下雨有伞几秒前
Spring Boot 使用FastExcel实现多级表头动态数据填充导出
java·faseexcel
阿拉斯攀登几秒前
自定义 Spring Boot 自动配置
java·spring boot
CodeAmaz7 分钟前
Spring编程式事务详解
java·数据库·spring
没有bug.的程序员8 分钟前
微服务基础设施清单:必须、应该、可以、无需的四级分类指南
java·jvm·微服务·云原生·容器·架构
武子康11 分钟前
Java-204 RabbitMQ Connection/Channel 工作流程:AMQP 发布消费、抓包帧结构与常见坑
java·分布式·消息队列·rabbitmq·ruby·java-activemq
郑州光合科技余经理13 分钟前
海外国际版同城服务系统开发:PHP技术栈
java·大数据·开发语言·前端·人工智能·架构·php
跨境卫士苏苏13 分钟前
突围新品广告泥潭:亚马逊广告底层逻辑大重构
大数据·人工智能·算法·重构·亚马逊·防关联
appearappear23 分钟前
Mac 上重新安装了Cursor 2.2.30,重新配置 springboot 过程记录
java·spring boot·后端
CryptoRzz32 分钟前
日本股票 API 对接实战指南(实时行情与 IPO 专题)
java·开发语言·python·区块链·maven
程序员水自流34 分钟前
MySQL数据库自带系统数据库功能介绍
java·数据库·mysql·oracle