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;
    }
}
  • 总结:题目不是很难,但是主要是怎么优化一下空间复杂度。
相关推荐
我没想到原来他们都是一堆坏人5 小时前
(未完待续...)如何编写一个用于构建python web项目镜像的dockerfile文件
java·前端·python
沙二原住民5 小时前
提升数据库性能的秘密武器:深入解析慢查询、连接池与Druid监控
java·数据库·oracle
中华小当家呐6 小时前
算法之常见八大排序
数据结构·算法·排序算法
Jerry&Grj6 小时前
SpringBoot埋点功能技术实现方案深度解析:架构设计、性能优化与扩展性实践
java·微服务·性能优化·springboot·架构设计·埋点技术
没有bug.的程序员6 小时前
Redis Stream:轻量级消息队列深度解析
java·数据库·chrome·redis·消息队列
沐怡旸6 小时前
【算法--链表】114.二叉树展开为链表--通俗讲解
算法·面试
用户8160791833336 小时前
告别“魔法”:包你解决 Gradle 的下载慢问题
java
一只懒洋洋7 小时前
K-meas 聚类、KNN算法、决策树、随机森林
算法·决策树·聚类
当归10247 小时前
SQL Server死锁排查实战指南
java·服务器·网络
echoyu.7 小时前
消息队列-初识kafka
java·分布式·后端·spring cloud·中间件·架构·kafka