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;
    }
}
  • 总结:题目不是很难,但是主要是怎么优化一下空间复杂度。
相关推荐
IT_Octopus1 小时前
IntelliJ 本地日志路径自定义:`-DLOG_PATH=./logs` 为什么总“不听话“
java·log4j·intellij-idea
老王熬夜敲代码1 小时前
BLAKE3:最快的密码学哈希函数
算法·密码学·哈希算法
hansang_IR1 小时前
【题解】P4460 [CQOI2018] 解锁屏幕
c++·算法
见闻小天地2 小时前
简博斯JG-C系列彩色激光同轴位移计:摄像头模组对位与行程测量的技术价值观察
人工智能·算法
长征coder2 小时前
【无标题】
java·性能优化
新时代牛马2 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
葫三生2 小时前
《论三生原理》神话学构想与“神话历史”理论、《古史中的神话》思路异同?
大数据·人工智能·科技·深度学习·算法
Bs_MoneyMagnet2 小时前
基于springboot+vue的医疗健康便民服务平台的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring
liliangcsdn3 小时前
因子分析指标概念与示例
算法·机器学习
sunshine22 girl3 小时前
Java学习一 环境配置2 Idea的入门使用和maven配置,项目启动脚本配置
java·maven